<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Categories  Reference</title>
    <link rel="stylesheet" type="text/css" href="css/jazzy.css" />
    <link rel="stylesheet" type="text/css" href="css/highlight.css" />
    <meta charset='utf-8'>
    <script src="js/jquery.min.js" defer></script>
    <script src="js/jazzy.js" defer></script>
    
    <script src="js/lunr.min.js" defer></script>
    <script src="js/typeahead.jquery.js" defer></script>
    <script src="js/jazzy.search.js" defer></script>
  </head>
  <body>
    <a name="//apple_ref/swift/Section/Categories" class="dashAnchor"></a>
    <a title="Categories  Reference"></a>
    <header>
      <div class="content-wrapper">
        <p><a href="index.html">FWFramework 3.8.0 Docs</a> (81% documented)</p>
        <div class="header-right">
          <form role="search" action="search.json">
            <input type="text" placeholder="Search documentation" data-typeahead>
          </form>
        </div>
      </div>
    </header>
    <div class="content-wrapper">
      <p id="breadcrumbs">
        <a href="index.html">FWFramework Reference</a>
        <img id="carat" src="img/carat.png" alt=""/>
        Categories  Reference
      </p>
    </div>
    <div class="content-wrapper">
      <nav class="sidebar">
        <ul class="nav-groups">
          <li class="nav-group-name">
            <a href="Categories.html">Categories</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Categories/CAAnimation%28FWQuartzCore%29.html">CAAnimation(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/CADisplayLink%28FWQuartzCore%29.html">CADisplayLink(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/CAGradientLayer%28FWQuartzCore%29.html">CAGradientLayer(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/CALayer%28FWQuartzCore%29.html">CALayer(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSArray%28FWFoundation%29.html">NSArray(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSArray%28FWSafeType%29.html">NSArray(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSAttributedString%28FWFoundation%29.html">NSAttributedString(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSBundle%28FWLanguage%29.html">NSBundle(FWLanguage)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSData%28FWEncode%29.html">NSData(FWEncode)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSData%28FWFoundation%29.html">NSData(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSDate%28FWFoundation%29.html">NSDate(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSDictionary%28FWFoundation%29.html">NSDictionary(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSDictionary%28FWSafeType%29.html">NSDictionary(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSMutableArray%28FWSafeType%29.html">NSMutableArray(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSMutableDictionary%28FWSafeType%29.html">NSMutableDictionary(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSMutableSet%28FWSafeType%29.html">NSMutableSet(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSObject%28FWAppearance%29.html">NSObject(FWAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWEncode%29.html">NSString(FWEncode)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWFoundation%29.html">NSString(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWLanguage%29.html">NSString(FWLanguage)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWSafeType%29.html">NSString(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSTimer%28FWBlock%29.html">NSTimer(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSURL%28FWEncode%29.html">NSURL(FWEncode)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSUserDefaults%28FWFoundation%29.html">NSUserDefaults(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIApplication%28FWAdaptive%29.html">UIApplication(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIApplication%28FWToolkit%29.html">UIApplication(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIBarButtonItem%28FWBlock%29.html">UIBarButtonItem(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIButton%28FWUIKit%29.html">UIButton(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionReusableView%28FWDynamicLayout%29.html">UICollectionReusableView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionView%28FWDynamicLayout%29.html">UICollectionView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionViewCell%28FWDynamicLayout%29.html">UICollectionViewCell(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionViewCell%28FWUIKit%29.html">UICollectionViewCell(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIColor%28FWTheme%29.html">UIColor(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIColor%28FWToolkit%29.html">UIColor(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIControl%28FWBlock%29.html">UIControl(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIDevice%28FWAdaptive%29.html">UIDevice(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIFont%28FWToolkit%29.html">UIFont(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIGestureRecognizer%28FWBlock%29.html">UIGestureRecognizer(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImage%28FWTheme%29.html">UIImage(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImage%28FWToolkit%29.html">UIImage(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImageAsset%28FWTheme%29.html">UIImageAsset(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImageView%28FWTheme%29.html">UIImageView(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UILabel%28FWUIKit%29.html">UILabel(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UINavigationBar%28FWBarAppearance%29.html">UINavigationBar(FWBarAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UINavigationController%28FWNavigation%29.html">UINavigationController(FWNavigation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UINavigationController%28FWToolkit%29.html">UINavigationController(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIPageControl%28FWUIKit%29.html">UIPageControl(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIScreen%28FWAdaptive%29.html">UIScreen(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIScrollView%28FWUIKit%29.html">UIScrollView(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UISlider%28FWUIKit%29.html">UISlider(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UISwitch%28FWUIKit%29.html">UISwitch(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITabBar%28FWBarAppearance%29.html">UITabBar(FWBarAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableView%28FWDynamicLayout%29.html">UITableView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableViewCell%28FWDynamicLayout%29.html">UITableViewCell(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableViewCell%28FWUIKit%29.html">UITableViewCell(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableViewHeaderFooterView%28FWDynamicLayout%29.html">UITableViewHeaderFooterView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextField%28FWKeyboard%29.html">UITextField(FWKeyboard)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextField%28FWUIKit%29.html">UITextField(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextView%28FWKeyboard%29.html">UITextView(FWKeyboard)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextView%28FWPlaceholder%29.html">UITextView(FWPlaceholder)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextView%28FWUIKit%29.html">UITextView(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIToolbar%28FWBarAppearance%29.html">UIToolbar(FWBarAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWAutoLayout%29.html">UIView(FWAutoLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWBlock%29.html">UIView(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWLayoutChain%29.html">UIView(FWLayoutChain)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWToolkit%29.html">UIView(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWUIKit%29.html">UIView(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWAdaptive%29.html">UIViewController(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWBlock%29.html">UIViewController(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWNavigation%29.html">UIViewController(FWNavigation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWToolkit%29.html">UIViewController(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWUIKit%29.html">UIViewController(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIWindow%28FWNavigation%29.html">UIWindow(FWNavigation)</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Classes.html">Classes</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Classes/ABConditionalTest.html">ABConditionalTest</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ABDefaultRepository.html">ABDefaultRepository</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ABSplitTest.html">ABSplitTest</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ABVersion.html">ABVersion</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/AuthorizeManager.html">AuthorizeManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/Benchmark.html">Benchmark</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FW.html">FW</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWAppearance.html">FWAppearance</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWAutoloader.html">FWAutoloader</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWBlockProxy.html">FWBlockProxy</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWConfiguration.html">FWConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWDelegateProxy.html">FWDelegateProxy</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWExceptionManager.html">FWExceptionManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWIcon.html">FWIcon</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLayoutChain.html">FWLayoutChain</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLoader.html">FWLoader</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLocationManager.html">FWLocationManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLogger.html">FWLogger</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLoggerPluginImpl.html">FWLoggerPluginImpl</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWMediator.html">FWMediator</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWModuleBundle.html">FWModuleBundle</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWMulticastDelegate.html">FWMulticastDelegate</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWPluginManager.html">FWPluginManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWRouter.html">FWRouter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWRouterContext.html">FWRouterContext</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWState.html">FWState</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWStateEvent.html">FWStateEvent</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWStateMachine.html">FWStateMachine</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWStateTransition.html">FWStateTransition</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWTask.html">FWTask</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWTaskManager.html">FWTaskManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWThemeManager.html">FWThemeManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWThemeObject.html">FWThemeObject</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWWeakObject.html">FWWeakObject</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWWeakProxy.html">FWWeakProxy</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/KeychainManager.html">KeychainManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/LayoutChain.html">LayoutChain</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/NotificationManager.html">NotificationManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/Promise.html">Promise</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/VersionManager.html">VersionManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/Wrapper.html">Wrapper</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Constants.html">Constants</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWExceptionCapturedNotification">FWExceptionCapturedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWFrameworkVersionNumber">FWFrameworkVersionNumber</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWFrameworkVersionString">FWFrameworkVersionString</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWHeadingUpdatedNotification">FWHeadingUpdatedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWLanguageChangedNotification">FWLanguageChangedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWLocationFailedNotification">FWLocationFailedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWLocationUpdatedNotification">FWLocationUpdatedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWMediator.h@FWModulePriorityDefault">FWModulePriorityDefault</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWMediator.h@FWModulePriorityHigh">FWModulePriorityHigh</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWMediator.h@FWModulePriorityLow">FWModulePriorityLow</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWRouterHandlerKey">FWRouterHandlerKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWRouterOptionsKey">FWRouterOptionsKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWRouterSourceKey">FWRouterSourceKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch35">FWScreenInch35</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch40">FWScreenInch40</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch47">FWScreenInch47</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch54">FWScreenInch54</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch55">FWScreenInch55</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch58">FWScreenInch58</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch61">FWScreenInch61</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch65">FWScreenInch65</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch67">FWScreenInch67</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWStateChangedNotification">FWStateChangedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWThemeChangedNotification">FWThemeChangedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeModeDark">FWThemeModeDark</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeModeLight">FWThemeModeLight</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeModeSystem">FWThemeModeSystem</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeStyleDark">FWThemeStyleDark</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeStyleLight">FWThemeStyleLight</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Enums.html">Enumerations</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Enums/AuthorizeStatus.html">AuthorizeStatus</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/AuthorizeType.html">AuthorizeType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWHeaderFooterViewType.html">FWHeaderFooterViewType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWLogLevel.html">FWLogLevel</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWLogType.html">FWLogType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWViewControllerVisibleState.html">FWViewControllerVisibleState</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/Index.html">Index</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONError.html">JSONError</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONKey.html">JSONKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONType.html">JSONType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONWritingOptionsKeys.html">JSONWritingOptionsKeys</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/VersionStatus.html">VersionStatus</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Protocols.html">Protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Protocols/ABRandomRepository.html">ABRandomRepository</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AnyDateFormatter.html">AnyDateFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AnyDecoder.html">AnyDecoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AnyEncoder.html">AnyEncoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AuthorizeProtocol.html">AuthorizeProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AutoloadProtocol.html">AutoloadProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWConfigurationTemplateProtocol.html">FWConfigurationTemplateProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWLoggerPlugin.html">FWLoggerPlugin</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWModuleProtocol.html">FWModuleProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWPluginProtocol.html">FWPluginProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWThemeObserver.html">FWThemeObserver</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/JSONSubscriptType.html">JSONSubscriptType</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/SafeType.html">SafeType</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/WrapperCompatible.html">WrapperCompatible</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Type%20Definitions.html">Type Definitions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockBool">FWBlockBool</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockBoolParam">FWBlockBoolParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockDouble">FWBlockDouble</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockInt">FWBlockInt</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockIntParam">FWBlockIntParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockParam">FWBlockParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockVoid">FWBlockVoid</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCellConfigurationBlock">FWCellConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCellIndexPathBlock">FWCellIndexPathBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCollectionCellConfigurationBlock">FWCollectionCellConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCollectionCellIndexPathBlock">FWCollectionCellIndexPathBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWHeaderFooterViewConfigurationBlock">FWHeaderFooterViewConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWHeaderFooterViewSectionBlock">FWHeaderFooterViewSectionBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWMediator.h@T@FWModulePriority">FWModulePriority</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWReusableViewConfigurationBlock">FWReusableViewConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWReusableViewIndexPathBlock">FWReusableViewIndexPathBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWRouter.h@T@FWRouterCompletion">FWRouterCompletion</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWRouter.h@T@FWRouterHandler">FWRouterHandler</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWRouter.h@T@FWRouterUserInfoKey">FWRouterUserInfoKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWAdaptive.h@T@FWScreenInch">FWScreenInch</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeMode">FWThemeMode</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeStyle">FWThemeStyle</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Functions.html">Functions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework1loiySbAA4JSONV_ADtF">&lt;(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework2leoiySbAA4JSONV_ADtF">&lt;=(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework2eeoiySbAA4JSONV_ADtF">==(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework1goiySbAA4JSONV_ADtF">&gt;(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework2geoiySbAA4JSONV_ADtF">&gt;=(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWAutoload">FWAutoload</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFixedHeight">FWFixedHeight</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFixedValue">FWFixedValue</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFlatScale">FWFlatScale</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFlatValue">FWFlatValue</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontBold">FWFontBold</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontLight">FWFontLight</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontMedium">FWFontMedium</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontRegular">FWFontRegular</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontSemibold">FWFontSemibold</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontThin">FWFontThin</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWIconImage">FWIconImage</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWIconNamed">FWIconNamed</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeHeight">FWRelativeHeight</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeInsets">FWRelativeInsets</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativePoint">FWRelativePoint</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeRect">FWRelativeRect</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeSize">FWRelativeSize</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeValue">FWRelativeValue</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSafeNumber">FWSafeNumber</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSafeString">FWSafeString</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSafeURL">FWSafeURL</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSynchronized">FWSynchronized</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Extensions.html">Extensions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Extensions/Array.html">Array</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Bool.html">Bool</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:12CoreGraphics7CGFloatV">CGFloat</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Data.html">Data</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation4DateV">Date</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/c:objc(cs)NSDateFormatter">DateFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Decoder.html">Decoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Dictionary.html">Dictionary</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Double.html">Double</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Encoder.html">Encoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Float.html">Float</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/c:objc(cs)NSISO8601DateFormatter">ISO8601DateFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int.html">Int</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int16.html">Int16</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int32.html">Int32</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int64.html">Int64</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int8.html">Int8</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation11JSONDecoderC">JSONDecoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation11JSONEncoderC">JSONEncoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Optional.html">Optional</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation19PropertyListDecoderC">PropertyListDecoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation19PropertyListEncoderC">PropertyListEncoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Set.html">Set</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/String.html">String</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/TestCase.html">TestCase</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt.html">UInt</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt16.html">UInt16</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt32.html">UInt32</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt64.html">UInt64</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt8.html">UInt8</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/URL.html">URL</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation10URLRequestV">URLRequest</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Structs.html">Structures</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Structs/JSON.html">JSON</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/ModuleAnnotation.html">ModuleAnnotation</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/PluginAnnotation.html">PluginAnnotation</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/RouterAnnotation.html">RouterAnnotation</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/UserDefaultAnnotation.html">UserDefaultAnnotation</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Typealiases.html">Type Aliases</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework9BlockBoola">BlockBool</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework14BlockBoolParama">BlockBoolParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework11BlockDoublea">BlockDouble</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework8BlockInta">BlockInt</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework13BlockIntParama">BlockIntParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework10BlockParama">BlockParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework9BlockVoida">BlockVoid</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework9JSONIndexa">JSONIndex</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework12JSONRawIndexa">JSONRawIndex</a>
              </li>
            </ul>
          </li>
        </ul>
      </nav>
      <article class="main-content">
        <section>
          <section class="section">
            <h1>Categories</h1>
            <p>The following categories are available globally.</p>

          </section>
          <section class="section task-group-section">
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSObject@FWAppearance"></a>
                    <a name="//apple_ref/swift/Extension/NSObject(FWAppearance)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSObject@FWAppearance">NSObject(FWAppearance)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSObject%28FWAppearance%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSObject</span> <span class="p">(</span><span class="nl">FWAppearance</span><span class="p">)</span>

<span class="c1">/// 从 appearance 里取值并赋值给当前实例，通常在对象的 init 里调用</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_applyAppearance</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">NSObject</span><span class="p">:</span> <span class="kt"><a href="Protocols/WrapperCompatible.html">WrapperCompatible</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIDevice%2BFWAdaptive"></a>
                <a name="//apple_ref/swift/Section/UIDevice+FWAdaptive" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIDevice%2BFWAdaptive"></a>
                  <h3 class="section-name"><span>UIDevice+FWAdaptive</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIDevice@FWAdaptive"></a>
                    <a name="//apple_ref/swift/Extension/UIDevice(FWAdaptive)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIDevice@FWAdaptive">UIDevice(FWAdaptive)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIDevice%28FWAdaptive%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIDevice</span> <span class="p">(</span><span class="nl">FWAdaptive</span><span class="p">)</span>

<span class="c1">/// 是否是模拟器</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isSimulator</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否是iPhone</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isIphone</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 是否是iPad</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isIpad</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 是否是Mac</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isMac</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 界面是否横屏</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isLandscape</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 设备是否横屏，无论支不支持横屏</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isDeviceLandscape</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 设置界面方向，支持旋转方向时生效</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_setDeviceOrientation</span><span class="p">:(</span><span class="n">UIDeviceOrientation</span><span class="p">)</span><span class="nv">orientation</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// iOS系统版本</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="kt">double</span> <span class="n">fw_iosVersion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 是否是指定iOS主版本</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_isIos</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">version</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 是否是大于等于指定iOS主版本</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_isIosLater</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">version</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设备尺寸，跟横竖屏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_deviceSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 设备宽度，跟横竖屏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_deviceWidth</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 设备高度，跟横竖屏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_deviceHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 设备分辨率，跟横竖屏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_deviceResolution</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIApplication%2BFWAdaptive"></a>
                <a name="//apple_ref/swift/Section/UIApplication+FWAdaptive" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIApplication%2BFWAdaptive"></a>
                  <h3 class="section-name"><span>UIApplication+FWAdaptive</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIApplication@FWAdaptive"></a>
                    <a name="//apple_ref/swift/Extension/UIApplication(FWAdaptive)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIApplication@FWAdaptive">UIApplication(FWAdaptive)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIApplication%28FWAdaptive%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIApplication</span> <span class="p">(</span><span class="nl">FWAdaptive</span><span class="p">)</span>

<span class="c1">/// 是否是调试模式</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isDebug</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIScreen%2BFWAdaptive"></a>
                <a name="//apple_ref/swift/Section/UIScreen+FWAdaptive" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIScreen%2BFWAdaptive"></a>
                  <h3 class="section-name"><span>UIScreen+FWAdaptive</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIScreen@FWAdaptive"></a>
                    <a name="//apple_ref/swift/Extension/UIScreen(FWAdaptive)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIScreen@FWAdaptive">UIScreen(FWAdaptive)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIScreen%28FWAdaptive%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIScreen</span> <span class="p">(</span><span class="nl">FWAdaptive</span><span class="p">)</span>

<span class="c1">/// 屏幕尺寸</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_screenSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 屏幕宽度</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_screenWidth</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 屏幕高度</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_screenHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 屏幕像素比例</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_screenScale</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 是否是指定英寸屏幕</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_isScreenInch</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWAdaptive.h@T@FWScreenInch">FWScreenInch</a></span><span class="p">)</span><span class="nv">inch</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 是否是全面屏屏幕</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isNotchedScreen</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取一像素的大小</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_pixelOne</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 检查是否含有安全区域，可用来判断iPhoneX</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_hasSafeAreaInsets</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 获取安全区域距离</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">UIEdgeInsets</span> <span class="n">fw_safeAreaInsets</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 状态栏高度，与是否隐藏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_statusBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 导航栏高度，与是否隐藏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_navigationBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 顶部栏高度，包含状态栏、导航栏，与是否隐藏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_topBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 标签栏高度，与是否隐藏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_tabBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 工具栏高度，与是否隐藏无关</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_toolBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 指定等比例缩放参考设计图尺寸，默认{375,812}，宽度常用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_referenceSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 获取当前屏幕宽度缩放比例，宽度常用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_relativeScale</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 获取当前屏幕高度缩放比例，高度不常用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_relativeHeightScale</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取相对设计图宽度等比例缩放值</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_relativeValue</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">value</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取相对设计图高度等比例缩放值</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_relativeHeight</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">value</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取相对设计图宽度等比例缩放时的固定宽度值</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_fixedValue</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">value</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取相对设计图高度等比例缩放时的固定高度值</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_fixedHeight</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">value</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 基于当前设备的屏幕倍数，对传进来的floatValue进行像素取整</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_flatValue</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">value</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 基于指定的倍数(0取当前设备)，对传进来的floatValue进行像素取整</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_flatValue</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">value</span> <span class="nf">scale</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">scale</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIViewController%2BFWAdaptive"></a>
                <a name="//apple_ref/swift/Section/UIViewController+FWAdaptive" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIViewController%2BFWAdaptive"></a>
                  <h3 class="section-name"><span>UIViewController+FWAdaptive</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIViewController@FWAdaptive"></a>
                    <a name="//apple_ref/swift/Extension/UIViewController(FWAdaptive)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIViewController@FWAdaptive">UIViewController(FWAdaptive)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIViewController%28FWAdaptive%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIViewController</span> <span class="p">(</span><span class="nl">FWAdaptive</span><span class="p">)</span>

<span class="c1">/// 当前状态栏布局高度，导航栏隐藏时为0，推荐使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_statusBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前导航栏布局高度，隐藏时为0，推荐使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_navigationBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前顶部栏布局高度，导航栏隐藏时为0，推荐使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_topBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前标签栏布局高度，隐藏时为0，推荐使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_tabBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前工具栏布局高度，隐藏时为0，推荐使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_toolBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前底部栏布局高度，包含标签栏和工具栏，隐藏时为0，推荐使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_bottomBarHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIView@FWAutoLayout"></a>
                    <a name="//apple_ref/swift/Extension/UIView(FWAutoLayout)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIView@FWAutoLayout">UIView(FWAutoLayout)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>UIView自动布局分类，兼容UIView和UILayoutGuide(iOS9)</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    如果约束条件完全相同，会自动更新约束而不是重新添加。
另外，默认布局方式使用LTR，如果需要RTL布局，可通过fwAutoLayoutRTL统一启用

</div>

                        <a href="Categories/UIView%28FWAutoLayout%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIView</span> <span class="p">(</span><span class="nl">FWAutoLayout</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIView%2BFWLayoutChain"></a>
                <a name="//apple_ref/swift/Section/UIView+FWLayoutChain" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIView%2BFWLayoutChain"></a>
                  <h3 class="section-name"><span>UIView+FWLayoutChain</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIView@FWLayoutChain"></a>
                    <a name="//apple_ref/swift/Extension/UIView(FWLayoutChain)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIView@FWLayoutChain">UIView(FWLayoutChain)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>视图链式布局分类</p>

                        <a href="Categories/UIView%28FWLayoutChain%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIView</span> <span class="p">(</span><span class="nl">FWLayoutChain</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UINavigationBar%2BFWBarAppearance"></a>
                <a name="//apple_ref/swift/Section/UINavigationBar+FWBarAppearance" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UINavigationBar%2BFWBarAppearance"></a>
                  <h3 class="section-name"><span>UINavigationBar+FWBarAppearance</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UINavigationBar@FWBarAppearance"></a>
                    <a name="//apple_ref/swift/Extension/UINavigationBar(FWBarAppearance)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UINavigationBar@FWBarAppearance">UINavigationBar(FWBarAppearance)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>导航栏视图分类，全局设置用[UINavigationBar appearance]。默认iOS15+启用appearance，iOS14及以下使用旧版本api</p>

                        <a href="Categories/UINavigationBar%28FWBarAppearance%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UINavigationBar</span> <span class="p">(</span><span class="nl">FWBarAppearance</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITabBar%2BFWBarAppearance"></a>
                <a name="//apple_ref/swift/Section/UITabBar+FWBarAppearance" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITabBar%2BFWBarAppearance"></a>
                  <h3 class="section-name"><span>UITabBar+FWBarAppearance</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITabBar@FWBarAppearance"></a>
                    <a name="//apple_ref/swift/Extension/UITabBar(FWBarAppearance)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITabBar@FWBarAppearance">UITabBar(FWBarAppearance)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>标签栏视图分类，全局设置用[UITabBar appearance]。iOS15+启用appearance，iOS14及以下使用旧版本api</p>

                        <a href="Categories/UITabBar%28FWBarAppearance%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITabBar</span> <span class="p">(</span><span class="nl">FWBarAppearance</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIToolbar%2BFWBarAppearance"></a>
                <a name="//apple_ref/swift/Section/UIToolbar+FWBarAppearance" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIToolbar%2BFWBarAppearance"></a>
                  <h3 class="section-name"><span>UIToolbar+FWBarAppearance</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIToolbar@FWBarAppearance"></a>
                    <a name="//apple_ref/swift/Extension/UIToolbar(FWBarAppearance)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIToolbar@FWBarAppearance">UIToolbar(FWBarAppearance)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>工具栏样式分类，全局设置用[UIToolbar appearance]。iOS15+启用appearance，iOS14及以下使用旧版本api</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    工具栏高度建议用sizeToFit自动获取(示例44)，contentView为内容视图(示例44)，backgroundView为背景视图(示例78)

</div>

                        <a href="Categories/UIToolbar%28FWBarAppearance%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIToolbar</span> <span class="p">(</span><span class="nl">FWBarAppearance</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSTimer%2BFWBlock"></a>
                <a name="//apple_ref/swift/Section/NSTimer+FWBlock" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSTimer%2BFWBlock"></a>
                  <h3 class="section-name"><span>NSTimer+FWBlock</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSTimer@FWBlock"></a>
                    <a name="//apple_ref/swift/Extension/NSTimer(FWBlock)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSTimer@FWBlock">NSTimer(FWBlock)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSTimer%28FWBlock%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSTimer</span> <span class="p">(</span><span class="nl">FWBlock</span><span class="p">)</span>

<span class="cm">/**
 创建NSTimer，使用target-action，自动CommonModes添加到当前的运行循环中，避免ScrollView滚动时不触发
 
 @param seconds 时间
 @param target 目标
 @param selector 方法
 @param userInfo 参数
 @param repeats 是否重复
 @return 定时器
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_commonTimerWithTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">target</span><span class="p">:(</span><span class="n">id</span><span class="p">)</span><span class="nv">target</span> <span class="nf">selector</span><span class="p">:(</span><span class="n">SEL</span><span class="p">)</span><span class="nv">selector</span> <span class="nf">userInfo</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nv">userInfo</span> <span class="nf">repeats</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">repeats</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 创建NSTimer，使用block，自动CommonModes添加到当前的运行循环中，避免ScrollView滚动时不触发
 
 @param seconds 时间
 @param block 代码块
 @param repeats 是否重复
 @return 定时器
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_commonTimerWithTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">block</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="n">timer</span><span class="p">))</span><span class="nv">block</span> <span class="nf">repeats</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">repeats</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 创建倒计时定时器
 
 @param seconds 倒计时描述
 @param block 每秒执行block，为0时自动停止
 @return 定时器，可手工停止
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_commonTimerWithCountDown</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">block</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">NSInteger</span> <span class="n">countDown</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 创建NSTimer，使用block，需要调用addTimer:forMode:安排到当前的运行循环中(CommonModes避免ScrollView滚动时不触发)。
 @note 示例：[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]
 
 @param seconds 时间
 @param block 代码块
 @param repeats 是否重复
 @return 定时器
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_timerWithTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">block</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="n">timer</span><span class="p">))</span><span class="nv">block</span> <span class="nf">repeats</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">repeats</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 创建NSTimer，使用block，默认模式安排到当前的运行循环中
 
 @param seconds 时间
 @param block 代码块
 @param repeats 是否重复
 @return 定时器
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_scheduledTimerWithTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">block</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">NSTimer</span> <span class="o">*</span><span class="n">timer</span><span class="p">))</span><span class="nv">block</span> <span class="nf">repeats</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">repeats</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 暂停NSTimer</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_pauseTimer</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 开始NSTimer</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_resumeTimer</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 延迟delay秒后开始NSTimer</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_resumeTimerAfterDelay</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">delay</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIGestureRecognizer%2BFWBlock"></a>
                <a name="//apple_ref/swift/Section/UIGestureRecognizer+FWBlock" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIGestureRecognizer%2BFWBlock"></a>
                  <h3 class="section-name"><span>UIGestureRecognizer+FWBlock</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIGestureRecognizer@FWBlock"></a>
                    <a name="//apple_ref/swift/Extension/UIGestureRecognizer(FWBlock)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIGestureRecognizer@FWBlock">UIGestureRecognizer(FWBlock)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIGestureRecognizer%28FWBlock%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIGestureRecognizer</span> <span class="p">(</span><span class="nl">FWBlock</span><span class="p">)</span>

<span class="c1">/// 添加事件句柄，返回唯一标志</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_addBlock</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">id</span> <span class="n">sender</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据唯一标志移除事件句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeBlock</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">identifier</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 移除所有事件句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_removeAllBlocks</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从事件句柄初始化</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_gestureRecognizerWithBlock</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">id</span> <span class="n">sender</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIView%2BFWBlock"></a>
                <a name="//apple_ref/swift/Section/UIView+FWBlock" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIView%2BFWBlock"></a>
                  <h3 class="section-name"><span>UIView+FWBlock</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIView@FWBlock"></a>
                    <a name="//apple_ref/swift/Extension/UIView(FWBlock)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIView@FWBlock">UIView(FWBlock)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIView%28FWBlock%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIView</span> <span class="p">(</span><span class="nl">FWBlock</span><span class="p">)</span>

<span class="c1">/// 添加点击手势事件，默认子视图也会响应此事件。如要屏蔽之，解决方法：1、子视图设为UIButton；2、子视图添加空手势事件</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_addTapGestureWithTarget</span><span class="p">:(</span><span class="n">id</span><span class="p">)</span><span class="nv">target</span> <span class="nf">action</span><span class="p">:(</span><span class="n">SEL</span><span class="p">)</span><span class="nv">action</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 添加点击手势句柄，同上</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_addTapGestureWithBlock</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">id</span> <span class="n">sender</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据唯一标志移除点击手势句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeTapGesture</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">identifier</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 移除所有点击手势</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_removeAllTapGestures</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIControl%2BFWBlock"></a>
                <a name="//apple_ref/swift/Section/UIControl+FWBlock" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIControl%2BFWBlock"></a>
                  <h3 class="section-name"><span>UIControl+FWBlock</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIControl@FWBlock"></a>
                    <a name="//apple_ref/swift/Extension/UIControl(FWBlock)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIControl@FWBlock">UIControl(FWBlock)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIControl%28FWBlock%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIControl</span> <span class="p">(</span><span class="nl">FWBlock</span><span class="p">)</span>

<span class="c1">/// 添加事件句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_addBlock</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">id</span> <span class="n">sender</span><span class="p">))</span><span class="nv">block</span> <span class="nf">forControlEvents</span><span class="p">:(</span><span class="n">UIControlEvents</span><span class="p">)</span><span class="nv">controlEvents</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据唯一标志移除事件句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeBlock</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">identifier</span> <span class="nf">forControlEvents</span><span class="p">:(</span><span class="n">UIControlEvents</span><span class="p">)</span><span class="nv">controlEvents</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 移除所有事件句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeAllBlocksForControlEvents</span><span class="p">:(</span><span class="n">UIControlEvents</span><span class="p">)</span><span class="nv">controlEvents</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 添加点击事件</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_addTouchTarget</span><span class="p">:(</span><span class="n">id</span><span class="p">)</span><span class="nv">target</span> <span class="nf">action</span><span class="p">:(</span><span class="n">SEL</span><span class="p">)</span><span class="nv">action</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 添加点击句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_addTouchBlock</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">id</span> <span class="n">sender</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据唯一标志移除点击句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeTouchBlock</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">identifier</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 移除所有点击句柄</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_removeAllTouchBlocks</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIBarButtonItem%2BFWBlock"></a>
                <a name="//apple_ref/swift/Section/UIBarButtonItem+FWBlock" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIBarButtonItem%2BFWBlock"></a>
                  <h3 class="section-name"><span>UIBarButtonItem+FWBlock</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIBarButtonItem@FWBlock"></a>
                    <a name="//apple_ref/swift/Extension/UIBarButtonItem(FWBlock)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIBarButtonItem@FWBlock">UIBarButtonItem(FWBlock)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>iOS11之后，customView必须具有intrinsicContentSize值才能点击，可使用frame布局或者实现intrinsicContentSize即可</p>

                        <a href="Categories/UIBarButtonItem%28FWBlock%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIBarButtonItem</span> <span class="p">(</span><span class="nl">FWBlock</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIViewController%2BFWBlock"></a>
                <a name="//apple_ref/swift/Section/UIViewController+FWBlock" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIViewController%2BFWBlock"></a>
                  <h3 class="section-name"><span>UIViewController+FWBlock</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIViewController@FWBlock"></a>
                    <a name="//apple_ref/swift/Extension/UIViewController(FWBlock)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIViewController@FWBlock">UIViewController(FWBlock)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>iOS13+支持针对VC.navigationItem单独设置导航栏样式，如最低兼容iOS13时可使用</p>

                        <a href="Categories/UIViewController%28FWBlock%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIViewController</span> <span class="p">(</span><span class="nl">FWBlock</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITableViewCell%2BFWDynamicLayout"></a>
                <a name="//apple_ref/swift/Section/UITableViewCell+FWDynamicLayout" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITableViewCell%2BFWDynamicLayout"></a>
                  <h3 class="section-name"><span>UITableViewCell+FWDynamicLayout</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITableViewCell@FWDynamicLayout"></a>
                    <a name="//apple_ref/swift/Extension/UITableViewCell(FWDynamicLayout)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITableViewCell@FWDynamicLayout">UITableViewCell(FWDynamicLayout)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UITableViewCell%28FWDynamicLayout%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITableViewCell</span> <span class="p">(</span><span class="nl">FWDynamicLayout</span><span class="p">)</span>

<span class="c1">/// 如果用来确定Cell所需高度的View是唯一的，请把此值设置为YES，可提升一定的性能</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewFixed</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y视图的底部内边距，可避免新创建View来撑开Cell，默认0</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_maxYViewPadding</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y视图是否撑开布局，需布局约束完整。默认NO，无需撑开布局；YES时padding不起作用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewExpanded</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册创建UITableViewCell，内部自动处理缓冲池，默认Default类型</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_cellWithTableView</span><span class="p">:(</span><span class="n">UITableView</span> <span class="o">*</span><span class="p">)</span><span class="nv">tableView</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册alloc创建UITableViewCell，内部自动处理缓冲池，指定style类型</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_cellWithTableView</span><span class="p">:(</span><span class="n">UITableView</span> <span class="o">*</span><span class="p">)</span><span class="nv">tableView</span>
                                          <span class="nf">style</span><span class="p">:(</span><span class="n">UITableViewCellStyle</span><span class="p">)</span><span class="nv">style</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册alloc创建UITableViewCell，内部自动处理缓冲池，指定style类型，指定reuseIdentifier</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_cellWithTableView</span><span class="p">:(</span><span class="n">UITableView</span> <span class="o">*</span><span class="p">)</span><span class="nv">tableView</span>
                                          <span class="nf">style</span><span class="p">:(</span><span class="n">UITableViewCellStyle</span><span class="p">)</span><span class="nv">style</span>
                                <span class="nf">reuseIdentifier</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">reuseIdentifier</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算cell高度，不使用缓存，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_heightWithTableView</span><span class="p">:(</span><span class="n">UITableView</span> <span class="o">*</span><span class="p">)</span><span class="nv">tableView</span>
                 <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCellConfigurationBlock">FWCellConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITableViewHeaderFooterView%2BFWDynamicLayout"></a>
                <a name="//apple_ref/swift/Section/UITableViewHeaderFooterView+FWDynamicLayout" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITableViewHeaderFooterView%2BFWDynamicLayout"></a>
                  <h3 class="section-name"><span>UITableViewHeaderFooterView+FWDynamicLayout</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITableViewHeaderFooterView@FWDynamicLayout"></a>
                    <a name="//apple_ref/swift/Extension/UITableViewHeaderFooterView(FWDynamicLayout)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITableViewHeaderFooterView@FWDynamicLayout">UITableViewHeaderFooterView(FWDynamicLayout)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UITableViewHeaderFooterView%28FWDynamicLayout%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITableViewHeaderFooterView</span> <span class="p">(</span><span class="nl">FWDynamicLayout</span><span class="p">)</span>

<span class="c1">/// 如果用来确定HeaderFooterView所需高度的View是唯一的，请把此值设置为YES，可提升一定的性能</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewFixed</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y视图的底部内边距，可避免新创建View来撑开HeaderFooterView，默认0</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_maxYViewPadding</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y视图是否撑开布局，需布局约束完整。默认NO，无需撑开布局；YES时padding不起作用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewExpanded</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册alloc创建UITableViewHeaderFooterView，内部自动处理缓冲池</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_headerFooterViewWithTableView</span><span class="p">:(</span><span class="n">UITableView</span> <span class="o">*</span><span class="p">)</span><span class="nv">tableView</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册alloc创建UITableViewHeaderFooterView，内部自动处理缓冲池，指定reuseIdentifier</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_headerFooterViewWithTableView</span><span class="p">:(</span><span class="n">UITableView</span> <span class="o">*</span><span class="p">)</span><span class="nv">tableView</span> <span class="nf">reuseIdentifier</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">reuseIdentifier</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算cell高度，不使用缓存，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nf">fw_heightWithTableView</span><span class="p">:(</span><span class="n">UITableView</span> <span class="o">*</span><span class="p">)</span><span class="nv">tableView</span>
                          <span class="nf">type</span><span class="p">:(</span><span class="n"><a href="Enums/FWHeaderFooterViewType.html">FWHeaderFooterViewType</a></span><span class="p">)</span><span class="nv">type</span>
                 <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWHeaderFooterViewConfigurationBlock">FWHeaderFooterViewConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITableView%2BFWDynamicLayout"></a>
                <a name="//apple_ref/swift/Section/UITableView+FWDynamicLayout" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITableView%2BFWDynamicLayout"></a>
                  <h3 class="section-name"><span>UITableView+FWDynamicLayout</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITableView@FWDynamicLayout"></a>
                    <a name="//apple_ref/swift/Extension/UITableView(FWDynamicLayout)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITableView@FWDynamicLayout">UITableView(FWDynamicLayout)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>表格自动计算并缓存cell高度分类，最底部view的MaxY即为cell高度，自定义方案实现</p>

<p>如果使用系统自动高度，建议设置estimatedRowHeight提高性能</p>
<div class="aside aside-see">
    <p class="aside-title">See</p>
    <a href="https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight">https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight</a>

</div>

                        <a href="Categories/UITableView%28FWDynamicLayout%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITableView</span> <span class="p">(</span><span class="nl">FWDynamicLayout</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UICollectionViewCell%2BFWDynamicLayout"></a>
                <a name="//apple_ref/swift/Section/UICollectionViewCell+FWDynamicLayout" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UICollectionViewCell%2BFWDynamicLayout"></a>
                  <h3 class="section-name"><span>UICollectionViewCell+FWDynamicLayout</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UICollectionViewCell@FWDynamicLayout"></a>
                    <a name="//apple_ref/swift/Extension/UICollectionViewCell(FWDynamicLayout)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UICollectionViewCell@FWDynamicLayout">UICollectionViewCell(FWDynamicLayout)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UICollectionViewCell%28FWDynamicLayout%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UICollectionViewCell</span> <span class="p">(</span><span class="nl">FWDynamicLayout</span><span class="p">)</span>

<span class="c1">/// 如果用来确定Cell所需尺寸的View是唯一的，请把此值设置为YES，可提升一定的性能</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewFixed</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y视图的底部内边距(横向滚动时为X)，可避免新创建View来撑开Cell，默认0</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_maxYViewPadding</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y视图是否撑开布局(横向滚动时为X)，需布局约束完整。默认NO，无需撑开布局；YES时padding不起作用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewExpanded</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册创建UICollectionViewCell，内部自动处理缓冲池</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_cellWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                               <span class="nf">indexPath</span><span class="p">:(</span><span class="n">NSIndexPath</span> <span class="o">*</span><span class="p">)</span><span class="nv">indexPath</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册创建UICollectionViewCell，内部自动处理缓冲池，指定reuseIdentifier</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_cellWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                               <span class="nf">indexPath</span><span class="p">:(</span><span class="n">NSIndexPath</span> <span class="o">*</span><span class="p">)</span><span class="nv">indexPath</span>
                         <span class="nf">reuseIdentifier</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">reuseIdentifier</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算view大小，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                   <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCollectionCellConfigurationBlock">FWCollectionCellConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算view大小，固定宽度，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                           <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span>
                   <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCollectionCellConfigurationBlock">FWCollectionCellConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算view大小，固定高度，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                          <span class="nf">height</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">height</span>
                   <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCollectionCellConfigurationBlock">FWCollectionCellConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UICollectionReusableView%2BFWDynamicLayout"></a>
                <a name="//apple_ref/swift/Section/UICollectionReusableView+FWDynamicLayout" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UICollectionReusableView%2BFWDynamicLayout"></a>
                  <h3 class="section-name"><span>UICollectionReusableView+FWDynamicLayout</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UICollectionReusableView@FWDynamicLayout"></a>
                    <a name="//apple_ref/swift/Extension/UICollectionReusableView(FWDynamicLayout)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UICollectionReusableView@FWDynamicLayout">UICollectionReusableView(FWDynamicLayout)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UICollectionReusableView%28FWDynamicLayout%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UICollectionReusableView</span> <span class="p">(</span><span class="nl">FWDynamicLayout</span><span class="p">)</span>

<span class="c1">/// 如果用来确定ReusableView所需尺寸的View是唯一的，请把此值设置为YES，可提升一定的性能</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewFixed</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y尺寸视图的底部内边距(横向滚动时为X)，可避免新创建View来撑开ReusableView，默认0</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_maxYViewPadding</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Y视图是否撑开布局(横向滚动时为X)，需布局约束完整。默认NO，无需撑开布局；YES时padding不起作用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_maxYViewExpanded</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册alloc创建UICollectionReusableView，内部自动处理缓冲池</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_reusableViewWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                                            <span class="nf">kind</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">kind</span>
                                       <span class="nf">indexPath</span><span class="p">:(</span><span class="n">NSIndexPath</span> <span class="o">*</span><span class="p">)</span><span class="nv">indexPath</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 免注册alloc创建UICollectionReusableView，内部自动处理缓冲池，指定reuseIdentifier</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_reusableViewWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                                            <span class="nf">kind</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">kind</span>
                                       <span class="nf">indexPath</span><span class="p">:(</span><span class="n">NSIndexPath</span> <span class="o">*</span><span class="p">)</span><span class="nv">indexPath</span>
                                 <span class="nf">reuseIdentifier</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">reuseIdentifier</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算view大小，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                            <span class="nf">kind</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">kind</span>
                   <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWReusableViewConfigurationBlock">FWReusableViewConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算view大小，固定宽度，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                           <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span>
                            <span class="nf">kind</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">kind</span>
                   <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWReusableViewConfigurationBlock">FWReusableViewConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据配置自动计算view大小，固定高度，子类可重写</span>
<span class="k">+</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithCollectionView</span><span class="p">:(</span><span class="n">UICollectionView</span> <span class="o">*</span><span class="p">)</span><span class="nv">collectionView</span>
                          <span class="nf">height</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">height</span>
                            <span class="nf">kind</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">kind</span>
                   <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWReusableViewConfigurationBlock">FWReusableViewConfigurationBlock</a></span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UICollectionView%2BFWDynamicLayout"></a>
                <a name="//apple_ref/swift/Section/UICollectionView+FWDynamicLayout" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UICollectionView%2BFWDynamicLayout"></a>
                  <h3 class="section-name"><span>UICollectionView+FWDynamicLayout</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UICollectionView@FWDynamicLayout"></a>
                    <a name="//apple_ref/swift/Extension/UICollectionView(FWDynamicLayout)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UICollectionView@FWDynamicLayout">UICollectionView(FWDynamicLayout)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>集合自动计算并缓存cell高度分类，最底部view的MaxY即为cell高度，自定义方案实现</p>

<p>如果使用系统自动尺寸，建议设置estimatedItemSize提高性能</p>

                        <a href="Categories/UICollectionView%28FWDynamicLayout%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UICollectionView</span> <span class="p">(</span><span class="nl">FWDynamicLayout</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSString%2BFWEncode"></a>
                <a name="//apple_ref/swift/Section/NSString+FWEncode" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSString%2BFWEncode"></a>
                  <h3 class="section-name"><span>NSString+FWEncode</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSString@FWEncode"></a>
                    <a name="//apple_ref/swift/Extension/NSString(FWEncode)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSString@FWEncode">NSString(FWEncode)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSString%28FWEncode%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSString</span> <span class="p">(</span><span class="nl">FWEncode</span><span class="p">)</span>

<span class="cp">#pragma mark - Json
</span>
<span class="cm">/**
 Foundation对象编码为json字符串
 
 @param object 编码对象
 @return json字符串
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_jsonEncode</span><span class="p">:(</span><span class="n">id</span><span class="p">)</span><span class="nv">object</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  json字符串解码为Foundation对象
 *
 *  @return Foundation对象
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="n">fw_jsonDecode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Base64
</span>
<span class="cm">/**
 *  base64编码
 *
 *  @return base64字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_base64Encode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  base64解码
 *
 *  @return 原字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_base64Decode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Unicode
</span>
<span class="cm">/**
 *  计算长度，中文为1，英文为0.5
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="n">fw_unicodeLength</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  截取字符串，中文为1，英文为0.5
 *
 *  @param length 截取长度
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_unicodeSubstring</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">length</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  Unicode中文编码，将中文转换成Unicode字符串(如\u7E8C)
 *
 *  @return Unicode字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_unicodeEncode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  Unicode中文解码，将Unicode字符串(如\u7E8C)转换成中文
 *
 *  @return 中文字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_unicodeDecode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Url
</span>
<span class="cm">/**
 *  url参数编码，适用于query参数编码
 *  示例：http://test.com?id=我是中文 =&gt;
 *       http%3A%2F%2Ftest.com%3Fid%3D%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87
 *
 *  @return url编码字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_urlEncodeComponent</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  url参数解码，适用于query参数解码
 *  示例：http%3A%2F%2Ftest.com%3Fid%3D%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87 =&gt;
 *       http://test.com?id=我是中文
 *
 *  @return 原字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_urlDecodeComponent</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  url编码，适用于整个url编码
 *  示例：http://test.com?id=我是中文 =&gt;
 *       http://test.com?id=%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87
 *
 *  @return url编码地址
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_urlEncode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  url解码，适用于整个url解码
 *  示例：http://test.com?id=%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87 =&gt;
 *       http://test.com?id=我是中文
 *
 *  @return 原url地址
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_urlDecode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Query
</span>
<span class="cm">/**
 * 字典编码为URL参数字符串
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_queryEncode</span><span class="p">:(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span> <span class="n">id</span><span class="o">&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nv">dictionary</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 * URL参数字符串解码为字典，支持完整URL
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span> <span class="n">NSString</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_queryDecode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Md5
</span>
<span class="cm">/**
 *  md5编码
 *
 *  @return md5字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_md5Encode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  文件md5编码
 *
 *  @return md5字符串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_md5EncodeFile</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Helper
</span>
<span class="cm">/**
 去掉空白字符
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_trimString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 首字母大写
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_ucfirstString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 首字母小写
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_lcfirstString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 驼峰转下划线
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_underlineString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 下划线转驼峰
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_camelString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 中文转拼音
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_pinyinString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 过滤JSON解码特殊字符
 
 兼容\uD800-\uDFFF引起JSON解码报错3840问题，不报错时无需调用
 规则：只允许以\uD800-\uDBFF高位开头，紧跟\uDC00-\uDFFF低位；其他全不允许
 参考：https://github.com/SBJson/SBJson/blob/trunk/Classes/SBJson5StreamTokeniser.m
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_escapeJson</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 转换为UTF8编码数据
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSData</span> <span class="o">*</span><span class="n">fw_utf8Data</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 转换为NSURL
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSURL</span> <span class="o">*</span><span class="n">fw_url</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 转换为NSNumber
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span> <span class="o">*</span><span class="n">fw_number</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSData%2BFWEncode"></a>
                <a name="//apple_ref/swift/Section/NSData+FWEncode" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSData%2BFWEncode"></a>
                  <h3 class="section-name"><span>NSData+FWEncode</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSData@FWEncode"></a>
                    <a name="//apple_ref/swift/Extension/NSData(FWEncode)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSData@FWEncode">NSData(FWEncode)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSData%28FWEncode%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSData</span> <span class="p">(</span><span class="nl">FWEncode</span><span class="p">)</span>

<span class="cp">#pragma mark - Json
</span>
<span class="cm">/**
 Foundation对象编码为json数据
 
 @param object 编码对象
 @return json数据
 */</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSData</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_jsonEncode</span><span class="p">:(</span><span class="n">id</span><span class="p">)</span><span class="nv">object</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 json数据解码为Foundation对象

 @return Foundation对象
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="n">fw_jsonDecode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Base64
</span>
<span class="cm">/**
 *  base64编码
 *
 *  @return base64数据
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSData</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_base64Encode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 *  base64解码
 *
 *  @return 原数据
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSData</span> <span class="o">*</span><span class="p">)</span><span class="n">fw_base64Decode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Helper
</span>
<span class="cm">/**
 转换为UTF8编码字符串
 
 @return UTF8编码字符串
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_utf8String</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSURL%2BFWEncode"></a>
                <a name="//apple_ref/swift/Section/NSURL+FWEncode" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSURL%2BFWEncode"></a>
                  <h3 class="section-name"><span>NSURL+FWEncode</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSURL@FWEncode"></a>
                    <a name="//apple_ref/swift/Extension/NSURL(FWEncode)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSURL@FWEncode">NSURL(FWEncode)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSURL%28FWEncode%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSURL</span> <span class="p">(</span><span class="nl">FWEncode</span><span class="p">)</span>

<span class="c1">/// 获取当前query的参数字典，不含空值</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span> <span class="n">NSString</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="n">fw_queryDictionary</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取基准URI字符串，不含path|query|fragment等，包含scheme|host|port等</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_baseURI</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取路径URI字符串，不含scheme|host|port等，包含path|query|fragment等</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_pathURI</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 生成URL，中文自动URL编码</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSURL</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_urlWithString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">string</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 生成URL，中文自动URL编码</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSURL</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_urlWithString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">string</span> <span class="nf">relativeTo</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSURL</span> <span class="o">*</span><span class="p">)</span><span class="nv">baseURL</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSString%2BFWSafeType"></a>
                <a name="//apple_ref/swift/Section/NSString+FWSafeType" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSString%2BFWSafeType"></a>
                  <h3 class="section-name"><span>NSString+FWSafeType</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSString@FWSafeType"></a>
                    <a name="//apple_ref/swift/Extension/NSString(FWSafeType)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSString@FWSafeType">NSString(FWSafeType)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSString%28FWSafeType%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSString</span> <span class="p">(</span><span class="nl">FWSafeType</span><span class="p">)</span>

<span class="cm">/**
 从指定位置截取子串
 
 @param from 起始位置
 @return 子串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_substringFromIndex</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">from</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 截取子串到指定位置
 
 @param to 结束位置
 @return 子串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_substringToIndex</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">to</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 截取指定范围的子串
 
 @param range 指定范围
 @return 子串
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_substringWithRange</span><span class="p">:(</span><span class="n">NSRange</span><span class="p">)</span><span class="nv">range</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSArray%2BFWSafeType"></a>
                <a name="//apple_ref/swift/Section/NSArray+FWSafeType" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSArray%2BFWSafeType"></a>
                  <h3 class="section-name"><span>NSArray+FWSafeType</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSArray@FWSafeType"></a>
                    <a name="//apple_ref/swift/Extension/NSArray(FWSafeType)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSArray@FWSafeType">NSArray(FWSafeType)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSArray%28FWSafeType%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSArray</span><span class="o">&lt;</span><span class="n">__covariant</span> <span class="n">ObjectType</span><span class="o">&gt;</span> <span class="p">(</span><span class="n">FWSafeType</span><span class="p">)</span>

<span class="cm">/**
 安全获取对象
 
 @param index 索引
 @return 对象
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nf">fw_objectAtIndex</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">index</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全获取子数组
 
 @param range 范围
 @return 对象数组
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n">ObjectType</span><span class="o">&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_subarrayWithRange</span><span class="p">:(</span><span class="n">NSRange</span><span class="p">)</span><span class="nv">range</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSMutableArray%2BFWSafeType"></a>
                <a name="//apple_ref/swift/Section/NSMutableArray+FWSafeType" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSMutableArray%2BFWSafeType"></a>
                  <h3 class="section-name"><span>NSMutableArray+FWSafeType</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSMutableArray@FWSafeType"></a>
                    <a name="//apple_ref/swift/Extension/NSMutableArray(FWSafeType)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSMutableArray@FWSafeType">NSMutableArray(FWSafeType)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSMutableArray%28FWSafeType%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSMutableArray</span><span class="o">&lt;</span><span class="n">ObjectType</span><span class="o">&gt;</span> <span class="p">(</span><span class="n">FWSafeType</span><span class="p">)</span>

<span class="cm">/**
 安全添加对象
 
 @param object 对象
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_addObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nv">object</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全移除指定索引对象
 
 @param index 索引
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeObjectAtIndex</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">index</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全插入对象到指定位置
 
 @param object 对象
 @param index 索引
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_insertObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nv">object</span> <span class="nf">atIndex</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">index</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全替换对象到指定位置
 
 @param index 索引
 @param object 对象
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_replaceObjectAtIndex</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">index</span> <span class="nf">withObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nv">object</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全移除子数组
 
 @param range 范围
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeObjectsInRange</span><span class="p">:(</span><span class="n">NSRange</span><span class="p">)</span><span class="nv">range</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全插入数组到指定位置
 
 @param objects 要插入的数组
 @param index 索引
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_insertObjects</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span> <span class="o">*</span><span class="p">)</span><span class="nv">objects</span> <span class="nf">atIndex</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">index</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSMutableSet%2BFWSafeType"></a>
                <a name="//apple_ref/swift/Section/NSMutableSet+FWSafeType" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSMutableSet%2BFWSafeType"></a>
                  <h3 class="section-name"><span>NSMutableSet+FWSafeType</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSMutableSet@FWSafeType"></a>
                    <a name="//apple_ref/swift/Extension/NSMutableSet(FWSafeType)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSMutableSet@FWSafeType">NSMutableSet(FWSafeType)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSMutableSet%28FWSafeType%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSMutableSet</span><span class="o">&lt;</span><span class="n">ObjectType</span><span class="o">&gt;</span> <span class="p">(</span><span class="n">FWSafeType</span><span class="p">)</span>

<span class="cm">/**
 安全添加对象
 
 @param object 对象
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_addObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nv">object</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全移除对象
 
 @param object 对象
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nv">object</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSDictionary%2BFWSafeType"></a>
                <a name="//apple_ref/swift/Section/NSDictionary+FWSafeType" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSDictionary%2BFWSafeType"></a>
                  <h3 class="section-name"><span>NSDictionary+FWSafeType</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSDictionary@FWSafeType"></a>
                    <a name="//apple_ref/swift/Extension/NSDictionary(FWSafeType)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSDictionary@FWSafeType">NSDictionary(FWSafeType)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSDictionary%28FWSafeType%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSDictionary</span><span class="o">&lt;</span><span class="n">__covariant</span> <span class="n">KeyType</span><span class="p">,</span> <span class="n">__covariant</span> <span class="n">ObjectType</span><span class="o">&gt;</span> <span class="p">(</span><span class="n">FWSafeType</span><span class="p">)</span>

<span class="cm">/**
 安全读取对象（过滤NSNull）
 
 @param key 键名
 @return 键值
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nf">fw_objectForKey</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">KeyType</span><span class="p">)</span><span class="nv">key</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSMutableDictionary%2BFWSafeType"></a>
                <a name="//apple_ref/swift/Section/NSMutableDictionary+FWSafeType" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSMutableDictionary%2BFWSafeType"></a>
                  <h3 class="section-name"><span>NSMutableDictionary+FWSafeType</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSMutableDictionary@FWSafeType"></a>
                    <a name="//apple_ref/swift/Extension/NSMutableDictionary(FWSafeType)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSMutableDictionary@FWSafeType">NSMutableDictionary(FWSafeType)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSMutableDictionary%28FWSafeType%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSMutableDictionary</span><span class="o">&lt;</span><span class="n">KeyType</span><span class="p">,</span> <span class="n">ObjectType</span><span class="o">&gt;</span> <span class="p">(</span><span class="n">FWSafeType</span><span class="p">)</span>

<span class="cm">/**
 安全移除指定键名
 
 @param key 键名
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_removeObjectForKey</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">KeyType</span><span class="p">)</span><span class="nv">key</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 安全设置对象（过滤NSNull）

 @param object 键值
 @param key 键名
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nv">object</span> <span class="nf">forKey</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">KeyType</span> <span class="o">&lt;</span><span class="n">NSCopying</span><span class="o">&gt;</span><span class="p">)</span><span class="nv">key</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSArray%2BFWFoundation"></a>
                <a name="//apple_ref/swift/Section/NSArray+FWFoundation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSArray%2BFWFoundation"></a>
                  <h3 class="section-name"><span>NSArray+FWFoundation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSArray@FWFoundation"></a>
                    <a name="//apple_ref/swift/Extension/NSArray(FWFoundation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSArray@FWFoundation">NSArray(FWFoundation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSArray%28FWFoundation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSArray</span><span class="o">&lt;</span><span class="n">__covariant</span> <span class="n">ObjectType</span><span class="o">&gt;</span> <span class="p">(</span><span class="n">FWFoundation</span><span class="p">)</span>

<span class="c1">/// 过滤数组元素，返回YES的obj重新组装成一个数组</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSArray</span><span class="o">&lt;</span><span class="n">ObjectType</span><span class="o">&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_filterWithBlock</span><span class="p">:(</span><span class="n">BOOL</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">ObjectType</span> <span class="n">obj</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 映射数组元素，返回的obj重新组装成一个数组</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSArray</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_mapWithBlock</span><span class="p">:(</span><span class="n">id</span> <span class="n">_Nullable</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">ObjectType</span> <span class="n">obj</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 匹配数组第一个元素，返回满足条件的第一个obj</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nf">fw_matchWithBlock</span><span class="p">:(</span><span class="n">BOOL</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">ObjectType</span> <span class="n">obj</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从数组中随机取出对象，如@[@"a", @"b", @"c"]随机取出@"b"</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">ObjectType</span> <span class="n">fw_randomObject</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSAttributedString%2BFWFoundation"></a>
                <a name="//apple_ref/swift/Section/NSAttributedString+FWFoundation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSAttributedString%2BFWFoundation"></a>
                  <h3 class="section-name"><span>NSAttributedString+FWFoundation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSAttributedString@FWFoundation"></a>
                    <a name="//apple_ref/swift/Extension/NSAttributedString(FWFoundation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSAttributedString@FWFoundation">NSAttributedString(FWFoundation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>如果需要实现行内图片可点击效果，可使用UITextView添加附件或Link并实现delegate.shouldInteractWith方法即可</p>

                        <a href="Categories/NSAttributedString%28FWFoundation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSAttributedString</span> <span class="p">(</span><span class="nl">FWFoundation</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSData%2BFWFoundation"></a>
                <a name="//apple_ref/swift/Section/NSData+FWFoundation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSData%2BFWFoundation"></a>
                  <h3 class="section-name"><span>NSData+FWFoundation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSData@FWFoundation"></a>
                    <a name="//apple_ref/swift/Extension/NSData(FWFoundation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSData@FWFoundation">NSData(FWFoundation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSData%28FWFoundation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSData</span> <span class="p">(</span><span class="nl">FWFoundation</span><span class="p">)</span>

<span class="c1">/// 使用NSKeyedUnarchiver解压数据</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nf">fw_unarchiveObject</span><span class="p">:(</span><span class="n">Class</span><span class="p">)</span><span class="nv">clazz</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用NSKeyedArchiver压缩对象</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSData</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_archiveObject</span><span class="p">:(</span><span class="n">id</span><span class="p">)</span><span class="nv">object</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 保存对象归档</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_archiveObject</span><span class="p">:(</span><span class="n">id</span><span class="p">)</span><span class="nv">object</span> <span class="nf">toFile</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">path</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 读取对象归档</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nf">fw_unarchiveObject</span><span class="p">:(</span><span class="n">Class</span><span class="p">)</span><span class="nv">clazz</span> <span class="nf">withFile</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">path</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSDate%2BFWFoundation"></a>
                <a name="//apple_ref/swift/Section/NSDate+FWFoundation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSDate%2BFWFoundation"></a>
                  <h3 class="section-name"><span>NSDate+FWFoundation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSDate@FWFoundation"></a>
                    <a name="//apple_ref/swift/Extension/NSDate(FWFoundation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSDate@FWFoundation">NSDate(FWFoundation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSDate%28FWFoundation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSDate</span> <span class="p">(</span><span class="nl">FWFoundation</span><span class="p">)</span>

<span class="c1">/// 转化为字符串，默认当前时区，格式：yyyy-MM-dd HH:mm:ss</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_stringValue</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 转化为字符串，默认当前时区，自定义格式</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_stringWithFormat</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">format</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 转化为字符串，自定义格式和时区</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_stringWithFormat</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">format</span> <span class="nf">timeZone</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSTimeZone</span> <span class="o">*</span><span class="p">)</span><span class="nv">timeZone</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前时间戳，没有设置过返回本地时间戳，可同步设置服务器时间戳，同步后调整手机时间不影响</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSTimeInterval</span> <span class="n">fw_currentTime</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从字符串初始化日期，默认当前时区，格式：yyyy-MM-dd HH:mm:ss</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSDate</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_dateWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">string</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从字符串初始化日期，默认当前时区，自定义格式</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSDate</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_dateWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">string</span> <span class="nf">format</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">format</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从字符串初始化日期，自定义格式和时区</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSDate</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_dateWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">string</span> <span class="nf">format</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">format</span> <span class="nf">timeZone</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSTimeZone</span> <span class="o">*</span><span class="p">)</span><span class="nv">timeZone</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 格式化时长，格式"00:00"或"00:00:00"</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_formatDuration</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">duration</span> <span class="nf">hasHour</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">hasHour</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 格式化16位、13位时间戳为10位(秒)</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nf">fw_formatTimestamp</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">timestamp</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSDictionary%2BFWFoundation"></a>
                <a name="//apple_ref/swift/Section/NSDictionary+FWFoundation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSDictionary%2BFWFoundation"></a>
                  <h3 class="section-name"><span>NSDictionary+FWFoundation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSDictionary@FWFoundation"></a>
                    <a name="//apple_ref/swift/Extension/NSDictionary(FWFoundation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSDictionary@FWFoundation">NSDictionary(FWFoundation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSDictionary%28FWFoundation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSDictionary</span><span class="o">&lt;</span><span class="n">__covariant</span> <span class="n">KeyType</span><span class="p">,</span> <span class="n">__covariant</span> <span class="n">ObjectType</span><span class="o">&gt;</span> <span class="p">(</span><span class="n">FWFoundation</span><span class="p">)</span>

<span class="c1">/// 过滤字典元素，如果block返回NO，则去掉该元素</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">KeyType</span><span class="p">,</span> <span class="n">ObjectType</span><span class="o">&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_filterWithBlock</span><span class="p">:(</span><span class="n">BOOL</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">KeyType</span> <span class="n">key</span><span class="p">,</span> <span class="n">ObjectType</span> <span class="n">obj</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 映射字典元素，返回的obj重新组装成一个字典</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSDictionary</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_mapWithBlock</span><span class="p">:(</span><span class="n">id</span> <span class="n">_Nullable</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">KeyType</span> <span class="n">key</span><span class="p">,</span> <span class="n">ObjectType</span> <span class="n">obj</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 匹配字典第一个元素，返回满足条件的第一个obj</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">ObjectType</span><span class="p">)</span><span class="nf">fw_matchWithBlock</span><span class="p">:(</span><span class="n">BOOL</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">KeyType</span> <span class="n">key</span><span class="p">,</span> <span class="n">ObjectType</span> <span class="n">obj</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSString%2BFWFoundation"></a>
                <a name="//apple_ref/swift/Section/NSString+FWFoundation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSString%2BFWFoundation"></a>
                  <h3 class="section-name"><span>NSString+FWFoundation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSString@FWFoundation"></a>
                    <a name="//apple_ref/swift/Extension/NSString(FWFoundation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSString@FWFoundation">NSString(FWFoundation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSString%28FWFoundation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSString</span> <span class="p">(</span><span class="nl">FWFoundation</span><span class="p">)</span>

<span class="c1">/// 计算单行字符串指定字体所占尺寸</span>
<span class="k">-</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithFont</span><span class="p">:(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 计算多行字符串指定字体在指定绘制区域内所占尺寸</span>
<span class="k">-</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithFont</span><span class="p">:(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">drawSize</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">drawSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 计算多行字符串指定字体、指定属性在指定绘制区域内所占尺寸</span>
<span class="k">-</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_sizeWithFont</span><span class="p">:(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">drawSize</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">drawSize</span> <span class="nf">attributes</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSAttributedStringKey</span><span class="p">,</span> <span class="n">id</span><span class="o">&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nv">attributes</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否匹配正则表达式，示例：^[a-zA-Z0-9_\u4e00-\u9fa5]{4,14}$</span>
<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_matchesRegex</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">regex</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 格式化文件大小为".0K/.1M/.1G"</span>
<span class="k">+</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_sizeString</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">fileSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSUserDefaults%2BFWFoundation"></a>
                <a name="//apple_ref/swift/Section/NSUserDefaults+FWFoundation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSUserDefaults%2BFWFoundation"></a>
                  <h3 class="section-name"><span>NSUserDefaults+FWFoundation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSUserDefaults@FWFoundation"></a>
                    <a name="//apple_ref/swift/Extension/NSUserDefaults(FWFoundation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSUserDefaults@FWFoundation">NSUserDefaults(FWFoundation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSUserDefaults%28FWFoundation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSUserDefaults</span> <span class="p">(</span><span class="nl">FWFoundation</span><span class="p">)</span>

<span class="c1">/// 读取对象，支持unarchive对象</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nf">fw_objectForKey</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">key</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 保存对象，支持archive对象</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nv">object</span> <span class="nf">forKey</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">key</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从standard读取对象，支持unarchive对象</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nf">fw_objectForKey</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">key</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 保存对象到standard，支持archive对象</span>
<span class="k">+</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setObject</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nv">object</span> <span class="nf">forKey</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">key</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITextField%2BFWKeyboard"></a>
                <a name="//apple_ref/swift/Section/UITextField+FWKeyboard" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITextField%2BFWKeyboard"></a>
                  <h3 class="section-name"><span>UITextField+FWKeyboard</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITextField@FWKeyboard"></a>
                    <a name="//apple_ref/swift/Extension/UITextField(FWKeyboard)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITextField@FWKeyboard">UITextField(FWKeyboard)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>文本输入框键盘管理分类</p>

                        <a href="Categories/UITextField%28FWKeyboard%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITextField</span> <span class="p">(</span><span class="nl">FWKeyboard</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITextView%2BFWKeyboard"></a>
                <a name="//apple_ref/swift/Section/UITextView+FWKeyboard" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITextView%2BFWKeyboard"></a>
                  <h3 class="section-name"><span>UITextView+FWKeyboard</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITextView@FWKeyboard"></a>
                    <a name="//apple_ref/swift/Extension/UITextView(FWKeyboard)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITextView@FWKeyboard">UITextView(FWKeyboard)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>多行输入框键盘管理分类</p>

                        <a href="Categories/UITextView%28FWKeyboard%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITextView</span> <span class="p">(</span><span class="nl">FWKeyboard</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITextView%2BFWPlaceholder"></a>
                <a name="//apple_ref/swift/Section/UITextView+FWPlaceholder" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITextView%2BFWPlaceholder"></a>
                  <h3 class="section-name"><span>UITextView+FWPlaceholder</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITextView@FWPlaceholder"></a>
                    <a name="//apple_ref/swift/Extension/UITextView(FWPlaceholder)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITextView@FWPlaceholder">UITextView(FWPlaceholder)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>多行输入框占位文本分类</p>

                        <a href="Categories/UITextView%28FWPlaceholder%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITextView</span> <span class="p">(</span><span class="nl">FWPlaceholder</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSBundle%2BFWLanguage"></a>
                <a name="//apple_ref/swift/Section/NSBundle+FWLanguage" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSBundle%2BFWLanguage"></a>
                  <h3 class="section-name"><span>NSBundle+FWLanguage</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSBundle@FWLanguage"></a>
                    <a name="//apple_ref/swift/Extension/NSBundle(FWLanguage)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSBundle@FWLanguage">NSBundle(FWLanguage)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>NSBundle系统语言分类，处理mainBundle语言。如果需要处理三方SDK和系统组件语言，详见Bundle分类</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    如果系统组件无法正确显示语言，需Info.plist设置CFBundleAllowMixedLocalizations为YES，从而允许应用程序获取框架库内语言。
如果key为nil，value为nil，返回空串；key为nil，value非nil，返回value；如果key不存在，value为nil或空，返回key；如果key不存在，value非空，返回value
当前使用修改bundle类方式实现，也可以使用动态替换localizedStringForKey方法来实现，但需注意此方式的性能

</div>

                        <a href="Categories/NSBundle%28FWLanguage%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSBundle</span> <span class="p">(</span><span class="nl">FWLanguage</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSString%2BFWLanguage"></a>
                <a name="//apple_ref/swift/Section/NSString+FWLanguage" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSString%2BFWLanguage"></a>
                  <h3 class="section-name"><span>NSString+FWLanguage</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)NSString@FWLanguage"></a>
                    <a name="//apple_ref/swift/Extension/NSString(FWLanguage)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)NSString@FWLanguage">NSString(FWLanguage)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/NSString%28FWLanguage%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">NSString</span> <span class="p">(</span><span class="nl">FWLanguage</span><span class="p">)</span>

<span class="c1">/// 快速读取本地化语言</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_localized</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIWindow%2BFWNavigation"></a>
                <a name="//apple_ref/swift/Section/UIWindow+FWNavigation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIWindow%2BFWNavigation"></a>
                  <h3 class="section-name"><span>UIWindow+FWNavigation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIWindow@FWNavigation"></a>
                    <a name="//apple_ref/swift/Extension/UIWindow(FWNavigation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIWindow@FWNavigation">UIWindow(FWNavigation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIWindow%28FWNavigation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIWindow</span> <span class="p">(</span><span class="nl">FWNavigation</span><span class="p">)</span>

<span class="c1">/// 获取最顶部的视图控制器</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="n">fw_topViewController</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取最顶部的导航栏控制器。如果顶部VC不含导航栏，返回nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UINavigationController</span> <span class="o">*</span><span class="n">fw_topNavigationController</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取最顶部的显示控制器</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="n">fw_topPresentedController</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的导航栏控制器打开控制器</span>
<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的导航栏控制器打开控制器，同时pop指定数量控制器</span>
<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">pop</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">count</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的显示控制器弹出控制器，建议present导航栏控制器(可用来push)</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_presentViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的视图控制器打开控制器，自动判断push|present，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_openViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">options</span><span class="p">:(</span><span class="n"><a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a></span><span class="p">)</span><span class="nv">options</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 关闭最顶部的视图控制器，自动判断pop|dismiss，返回是否成功，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_closeViewControllerAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">options</span><span class="p">:(</span><span class="n"><a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a></span><span class="p">)</span><span class="nv">options</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前主window</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIWindow</span> <span class="o">*</span><span class="n">fw_mainWindow</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前主场景</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIWindowScene</span> <span class="o">*</span><span class="n">fw_mainScene</span> <span class="n">API_AVAILABLE</span><span class="p">(</span><span class="n">ios</span><span class="p">(</span><span class="mi">13</span><span class="p">.</span><span class="mi">0</span><span class="p">))</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取最顶部的视图控制器</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="n">fw_topViewController</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取最顶部的导航栏控制器。如果顶部VC不含导航栏，返回nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UINavigationController</span> <span class="o">*</span><span class="n">fw_topNavigationController</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取最顶部的显示控制器</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="n">fw_topPresentedController</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的导航栏控制器打开控制器</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的导航栏控制器打开控制器，同时pop指定数量控制器</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">pop</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">count</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的显示控制器弹出控制器，建议present导航栏控制器(可用来push)</span>
<span class="k">+</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_presentViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 使用最顶部的视图控制器打开控制器，自动判断push|present，完成时回调</span>
<span class="k">+</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_openViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">options</span><span class="p">:(</span><span class="n"><a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a></span><span class="p">)</span><span class="nv">options</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 关闭最顶部的视图控制器，自动判断pop|dismiss，返回是否成功，完成时回调</span>
<span class="k">+</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_closeViewControllerAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">options</span><span class="p">:(</span><span class="n"><a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a></span><span class="p">)</span><span class="nv">options</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIViewController%2BFWNavigation"></a>
                <a name="//apple_ref/swift/Section/UIViewController+FWNavigation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIViewController%2BFWNavigation"></a>
                  <h3 class="section-name"><span>UIViewController+FWNavigation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIViewController@FWNavigation"></a>
                    <a name="//apple_ref/swift/Extension/UIViewController(FWNavigation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIViewController@FWNavigation">UIViewController(FWNavigation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIViewController%28FWNavigation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIViewController</span> <span class="p">(</span><span class="nl">FWNavigation</span><span class="p">)</span>

<span class="cp">#pragma mark - Navigation
</span>
<span class="c1">/// 打开控制器。1.如果打开导航栏，则调用present；2.否则如果导航栏存在，则调用push；3.否则调用present</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_openViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_SWIFT_UNAVAILABLE</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>

<span class="c1">/// 打开控制器。1.如果打开导航栏，则调用present；2.否则如果导航栏存在，则调用push；3.否则调用present，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_openViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">options</span><span class="p">:(</span><span class="n"><a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a></span><span class="p">)</span><span class="nv">options</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 关闭控制器，返回是否成功。1.如果导航栏不存在，则调用dismiss；2.否则如果已是导航栏底部，则调用dismiss；3.否则调用pop</span>
<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_closeViewControllerAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_SWIFT_UNAVAILABLE</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>

<span class="c1">/// 关闭控制器，返回是否成功。1.如果导航栏不存在，则调用dismiss；2.否则如果已是导航栏底部，则调用dismiss；3.否则调用pop，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_closeViewControllerAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">options</span><span class="p">:(</span><span class="n"><a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a></span><span class="p">)</span><span class="nv">options</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Workflow
</span>
<span class="cm">/** 自定义工作流名称，支持二级("."分隔)；默认返回小写类名(去掉ViewController、Controller) */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_workflowName</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UINavigationController%2BFWNavigation"></a>
                <a name="//apple_ref/swift/Section/UINavigationController+FWNavigation" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UINavigationController%2BFWNavigation"></a>
                  <h3 class="section-name"><span>UINavigationController+FWNavigation</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UINavigationController@FWNavigation"></a>
                    <a name="//apple_ref/swift/Extension/UINavigationController(FWNavigation)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UINavigationController@FWNavigation">UINavigationController(FWNavigation)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UINavigationController%28FWNavigation%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UINavigationController</span> <span class="p">(</span><span class="nl">FWNavigation</span><span class="p">)</span>

<span class="cp">#pragma mark - Navigation
</span>
<span class="c1">/// push新界面，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// pop当前界面，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_popViewControllerAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// pop到指定界面，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n">__kindof</span> <span class="n">UIViewController</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_popToViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// pop到根界面，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n">__kindof</span> <span class="n">UIViewController</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_popToRootViewControllerAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置界面数组，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setViewControllers</span><span class="p">:(</span><span class="n">NSArray</span><span class="o">&lt;</span><span class="n">UIViewController</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewControllers</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// push新界面，同时pop指定数量界面，至少保留一个根控制器，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">pop</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">count</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// pop指定数量界面，0不会pop，至少保留一个根控制器，完成时回调</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n">__kindof</span> <span class="n">UIViewController</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_popViewControllers</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">count</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cp">#pragma mark - Workflow
</span>
<span class="cm">/**
 当前最外层工作流名称，即topViewController的工作流名称
 
 @return 工作流名称
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_topWorkflowName</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 push控制器，并清理最外层工作流（不属于工作流则不清理），完成时回调
 @note 示例：1、（2、3）、4、（5、6）、（7、8），操作后为1、（2、3）、4、（5、6）、9
 
 @param viewController push的控制器
 @param animated 是否执行动画
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">popTopWorkflowAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 push控制器，并清理非根控制器（只保留根控制器），完成时回调
 @note 示例：1、（2、3）、4、（5、6）、（7、8），操作后为1、9
 
 @param viewController push的控制器
 @param animated 是否执行动画
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">popToRootWorkflowAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 push控制器，并从外到内清理指定工作流，直到遇到不属于指定工作流的控制器停止，完成时回调
 @note 示例：1、（2、3）、4、（5、6）、（7、8），操作后为1、（2、3）、4、9
 
 @param viewController push的控制器
 @param workflows 指定工作流
 @param animated 是否执行动画
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_pushViewController</span><span class="p">:(</span><span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">viewController</span> <span class="nf">popWorkflows</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nv">workflows</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 pop方式清理最外层工作流，至少保留一个根控制器（不属于工作流则不清理），完成时回调
 @note 示例：1、（2、3）、4、（5、6）、（7、8），操作后为1、（2、3）、4、（5、6）
 
 @param animated 是否执行动画
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_popTopWorkflowAnimated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="cm">/**
 pop方式从外到内清理指定工作流，直到遇到不属于指定工作流的控制器停止，至少保留一个根控制器，完成时回调
 @note 示例：1、（2、3）、4、（5、6）、（7、8），操作后为1、（2、3）、4
 
 @param workflows 指定工作流
 @param animated  是否执行动画
 */</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_popWorkflows</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nv">workflows</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="nf">completion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="kt">void</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/CADisplayLink%2BFWQuartzCore"></a>
                <a name="//apple_ref/swift/Section/CADisplayLink+FWQuartzCore" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/CADisplayLink%2BFWQuartzCore"></a>
                  <h3 class="section-name"><span>CADisplayLink+FWQuartzCore</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)CADisplayLink@FWQuartzCore"></a>
                    <a name="//apple_ref/swift/Extension/CADisplayLink(FWQuartzCore)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)CADisplayLink@FWQuartzCore">CADisplayLink(FWQuartzCore)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>如果block参数不会被持有并后续执行，可声明为NS_NOESCAPE，不会触发循环引用</p>

                        <a href="Categories/CADisplayLink%28FWQuartzCore%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">CADisplayLink</span> <span class="p">(</span><span class="nl">FWQuartzCore</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/CAAnimation%2BFWQuartzCore"></a>
                <a name="//apple_ref/swift/Section/CAAnimation+FWQuartzCore" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/CAAnimation%2BFWQuartzCore"></a>
                  <h3 class="section-name"><span>CAAnimation+FWQuartzCore</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)CAAnimation@FWQuartzCore"></a>
                    <a name="//apple_ref/swift/Extension/CAAnimation(FWQuartzCore)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)CAAnimation@FWQuartzCore">CAAnimation(FWQuartzCore)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/CAAnimation%28FWQuartzCore%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">CAAnimation</span> <span class="p">(</span><span class="nl">FWQuartzCore</span><span class="p">)</span>

<span class="c1">/// 设置动画开始回调，需要在add之前添加，因为add时会自动拷贝一份对象</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_startBlock</span><span class="p">)(</span><span class="n">CAAnimation</span> <span class="o">*</span><span class="n">animation</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置动画停止回调</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_stopBlock</span><span class="p">)(</span><span class="n">CAAnimation</span> <span class="o">*</span><span class="n">animation</span><span class="p">,</span> <span class="n">BOOL</span> <span class="n">finished</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/CALayer%2BFWQuartzCore"></a>
                <a name="//apple_ref/swift/Section/CALayer+FWQuartzCore" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/CALayer%2BFWQuartzCore"></a>
                  <h3 class="section-name"><span>CALayer+FWQuartzCore</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)CALayer@FWQuartzCore"></a>
                    <a name="//apple_ref/swift/Extension/CALayer(FWQuartzCore)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)CALayer@FWQuartzCore">CALayer(FWQuartzCore)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/CALayer%28FWQuartzCore%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">CALayer</span> <span class="p">(</span><span class="nl">FWQuartzCore</span><span class="p">)</span>

<span class="c1">/// 设置主题背景色，启用主题订阅后可跟随系统改变，清空时需置为nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">)</span> <span class="n">UIColor</span> <span class="o">*</span><span class="n">fw_themeBackgroundColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置主题边框色，启用主题订阅后可跟随系统改变，清空时需置为nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">)</span> <span class="n">UIColor</span> <span class="o">*</span><span class="n">fw_themeBorderColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置主题阴影色，启用主题订阅后可跟随系统改变，清空时需置为nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">)</span> <span class="n">UIColor</span> <span class="o">*</span><span class="n">fw_themeShadowColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置主题内容图片，启用主题订阅后可跟随系统改变，清空时需置为nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">)</span> <span class="n">UIImage</span> <span class="o">*</span><span class="n">fw_themeContents</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/CAGradientLayer%2BFWQuartzCore"></a>
                <a name="//apple_ref/swift/Section/CAGradientLayer+FWQuartzCore" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/CAGradientLayer%2BFWQuartzCore"></a>
                  <h3 class="section-name"><span>CAGradientLayer+FWQuartzCore</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)CAGradientLayer@FWQuartzCore"></a>
                    <a name="//apple_ref/swift/Extension/CAGradientLayer(FWQuartzCore)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)CAGradientLayer@FWQuartzCore">CAGradientLayer(FWQuartzCore)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/CAGradientLayer%28FWQuartzCore%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">CAGradientLayer</span> <span class="p">(</span><span class="nl">FWQuartzCore</span><span class="p">)</span>

<span class="c1">/// 设置主题渐变色，启用主题订阅后可跟随系统改变，清空时需置为nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n">UIColor</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="n">fw_themeColors</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIColor%2BFWTheme"></a>
                <a name="//apple_ref/swift/Section/UIColor+FWTheme" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIColor%2BFWTheme"></a>
                  <h3 class="section-name"><span>UIColor+FWTheme</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIColor@FWTheme"></a>
                    <a name="//apple_ref/swift/Extension/UIColor(FWTheme)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIColor@FWTheme">UIColor(FWTheme)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIColor%28FWTheme%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIColor</span> <span class="p">(</span><span class="nl">FWTheme</span><span class="p">)</span>

<span class="c1">/// 动态创建主题色，分别指定浅色和深色</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_themeLight</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">light</span> <span class="nf">dark</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">dark</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 动态创建主题色，指定提供句柄</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_themeColor</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n"><a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeStyle">FWThemeStyle</a></span> <span class="n">style</span><span class="p">))</span><span class="nv">provider</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 动态创建主题色，指定名称，兼容iOS11+系统方式(仅iOS13+支持动态颜色)和手工指定。失败时返回clear防止崩溃</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_themeNamed</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 动态创建主题色，指定名称和bundle，兼容iOS11+系统方式(仅iOS13+支持动态颜色)和手工指定。失败时返回clear防止崩溃</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_themeNamed</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> <span class="nf">bundle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSBundle</span> <span class="o">*</span><span class="p">)</span><span class="nv">bundle</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 手工单个注册主题色，未配置主题色或者需兼容iOS11以下时可使用本方式</span>
<span class="k">+</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setThemeColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">forName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 手工批量注册主题色，未配置主题色或者需兼容iOS11以下时可使用本方式</span>
<span class="k">+</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setThemeColors</span><span class="p">:(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span> <span class="n">UIColor</span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nv">nameColors</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前主题样式对应静态颜色，主要用于iOS13以下兼容主题切换</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">UIColor</span> <span class="o">*</span><span class="n">fw_color</span> <span class="n">NS_SWIFT_NAME</span><span class="p">(</span><span class="n">__fw_color</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 指定主题样式获取对应静态颜色，iOS13+可跟随系统改变</span>
<span class="k">-</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_colorForStyle</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeStyle">FWThemeStyle</a></span><span class="p">)</span><span class="nv">style</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否是主题颜色，仅支持判断使用fwTheme创建的颜色</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isThemeColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIImage%2BFWTheme"></a>
                <a name="//apple_ref/swift/Section/UIImage+FWTheme" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIImage%2BFWTheme"></a>
                  <h3 class="section-name"><span>UIImage+FWTheme</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIImage@FWTheme"></a>
                    <a name="//apple_ref/swift/Extension/UIImage(FWTheme)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIImage@FWTheme">UIImage(FWTheme)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>UIImage主题分类</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    注意UIImage默认只有name方式且配置了any和dark才支持动态切换，否则只能重新赋值才会变化。
为避免内存泄漏，通过fwTheme方式创建的主题图片不能直接用于显示，显示时请调用fwImage方法

</div>

                        <a href="Categories/UIImage%28FWTheme%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIImage</span> <span class="p">(</span><span class="nl">FWTheme</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIImageAsset%2BFWTheme"></a>
                <a name="//apple_ref/swift/Section/UIImageAsset+FWTheme" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIImageAsset%2BFWTheme"></a>
                  <h3 class="section-name"><span>UIImageAsset+FWTheme</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIImageAsset@FWTheme"></a>
                    <a name="//apple_ref/swift/Extension/UIImageAsset(FWTheme)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIImageAsset@FWTheme">UIImageAsset(FWTheme)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIImageAsset%28FWTheme%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIImageAsset</span> <span class="p">(</span><span class="nl">FWTheme</span><span class="p">)</span>

<span class="c1">/// 创建主题动态图片资源，分别指定浅色和深色，系统方式，推荐使用</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIImageAsset</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_themeLight</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">light</span> <span class="nf">dark</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">dark</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 创建主题动态图片资源，指定提供句柄，内部使用FWThemeObject实现</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIImageAsset</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_themeAsset</span><span class="p">:(</span><span class="n">UIImage</span> <span class="o">*</span> <span class="n">_Nullable</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n"><a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeStyle">FWThemeStyle</a></span> <span class="n">style</span><span class="p">))</span><span class="nv">provider</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前主题样式对应静态图片用于显示，iOS13+可跟随系统改变</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">UIImage</span> <span class="o">*</span><span class="n">fw_image</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 指定主题样式获取对应静态图片用于显示，iOS13+可跟随系统改变</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageForStyle</span><span class="p">:(</span><span class="n"><a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeStyle">FWThemeStyle</a></span><span class="p">)</span><span class="nv">style</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否是主题图片资源，仅支持判断使用fwTheme创建的图片资源</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isThemeAsset</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NSObject%2BFWTheme"></a>
                <a name="//apple_ref/swift/Section/NSObject+FWTheme" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NSObject%2BFWTheme"></a>
                  <h3 class="section-name"><span>NSObject+FWTheme</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIImageView@FWTheme"></a>
                    <a name="//apple_ref/swift/Extension/UIImageView(FWTheme)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIImageView@FWTheme">UIImageView(FWTheme)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>iOS13主题订阅UIImageView分类</p>

                        <a href="Categories/UIImageView%28FWTheme%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIImageView</span> <span class="p">(</span><span class="nl">FWTheme</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIApplication%2BFWToolkit"></a>
                <a name="//apple_ref/swift/Section/UIApplication+FWToolkit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIApplication%2BFWToolkit"></a>
                  <h3 class="section-name"><span>UIApplication+FWToolkit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIApplication@FWToolkit"></a>
                    <a name="//apple_ref/swift/Extension/UIApplication(FWToolkit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIApplication@FWToolkit">UIApplication(FWToolkit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>注意Info.plist文件URL SCHEME配置项只影响canOpenUrl方法，不影响openUrl。微信返回app就是获取sourceUrl，直接openUrl实现。因为跳转微信的时候，来源app肯定已打开过，可以跳转，只要不检查canOpenUrl，就可以跳转回app</p>

                        <a href="Categories/UIApplication%28FWToolkit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIApplication</span> <span class="p">(</span><span class="nl">FWToolkit</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIColor%2BFWToolkit"></a>
                <a name="//apple_ref/swift/Section/UIColor+FWToolkit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIColor%2BFWToolkit"></a>
                  <h3 class="section-name"><span>UIColor+FWToolkit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIColor@FWToolkit"></a>
                    <a name="//apple_ref/swift/Extension/UIColor(FWToolkit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIColor@FWToolkit">UIColor(FWToolkit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIColor%28FWToolkit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIColor</span> <span class="p">(</span><span class="nl">FWToolkit</span><span class="p">)</span>

<span class="c1">/// 获取当前颜色指定透明度的新颜色</span>
<span class="k">-</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_colorWithAlpha</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">alpha</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 读取颜色的十六进制值RGB，不含透明度</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="kt">long</span> <span class="n">fw_hexValue</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 读取颜色的透明度值，范围0~1</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_alphaValue</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 读取颜色的十六进制字符串RGB，不含透明度</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_hexString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 读取颜色的十六进制字符串RGBA|ARGB(透明度为1时RGB)，包含透明度</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fw_hexAlphaString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置十六进制颜色标准为ARGB|RGBA，启用为ARGB，默认为RGBA</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_colorStandardARGB</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取透明度为1.0的RGB随机颜色</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">UIColor</span> <span class="o">*</span><span class="n">fw_randomColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从十六进制值初始化，格式：0x20B2AA，透明度为1.0</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_colorWithHex</span><span class="p">:(</span><span class="kt">long</span><span class="p">)</span><span class="nv">hex</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从十六进制值初始化，格式：0x20B2AA，自定义透明度</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_colorWithHex</span><span class="p">:(</span><span class="kt">long</span><span class="p">)</span><span class="nv">hex</span> <span class="nf">alpha</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">alpha</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从十六进制字符串初始化，支持RGB、RGBA|ARGB，格式：@"20B2AA", @"#FFFFFF"，透明度为1.0，失败时返回clear</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_colorWithHexString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">hexString</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从十六进制字符串初始化，支持RGB、RGBA|ARGB，格式：@"20B2AA", @"#FFFFFF"，自定义透明度，失败时返回clear</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_colorWithHexString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">hexString</span> <span class="nf">alpha</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">alpha</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIFont%2BFWToolkit"></a>
                <a name="//apple_ref/swift/Section/UIFont+FWToolkit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIFont%2BFWToolkit"></a>
                  <h3 class="section-name"><span>UIFont+FWToolkit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIFont@FWToolkit"></a>
                    <a name="//apple_ref/swift/Extension/UIFont(FWToolkit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIFont@FWToolkit">UIFont(FWToolkit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIFont%28FWToolkit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIFont</span> <span class="p">(</span><span class="nl">FWToolkit</span><span class="p">)</span>

<span class="c1">/// 全局自定义字体句柄，优先调用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIFont</span> <span class="o">*</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_fontBlock</span><span class="p">)(</span><span class="n">CGFloat</span> <span class="n">size</span><span class="p">,</span> <span class="n">UIFontWeight</span> <span class="n">weight</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否自动等比例缩放字体，默认NO。启用后所有fw字体size都会自动*relativeScale</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_autoScale</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 返回系统Thin字体</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_thinFontOfSize</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 返回系统Light字体</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_lightFontOfSize</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 返回系统Regular字体</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_fontOfSize</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 返回系统Medium字体</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_mediumFontOfSize</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 返回系统Semibold字体</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_semiboldFontOfSize</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>
<span class="c1">/// 返回系统Bold字体</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_boldFontOfSize</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 创建指定尺寸和weight的系统字体</span>
<span class="k">+</span> <span class="p">(</span><span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_fontOfSize</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">size</span> <span class="nf">weight</span><span class="p">:(</span><span class="n">UIFontWeight</span><span class="p">)</span><span class="nv">weight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIImage%2BFWToolkit"></a>
                <a name="//apple_ref/swift/Section/UIImage+FWToolkit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIImage%2BFWToolkit"></a>
                  <h3 class="section-name"><span>UIImage+FWToolkit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIImage@FWToolkit"></a>
                    <a name="//apple_ref/swift/Extension/UIImage(FWToolkit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIImage@FWToolkit">UIImage(FWToolkit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIImage%28FWToolkit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIImage</span> <span class="p">(</span><span class="nl">FWToolkit</span><span class="p">)</span>

<span class="c1">/// 从当前图片创建指定透明度的图片</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithAlpha</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">alpha</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从当前图片混合颜色创建UIImage，默认kCGBlendModeDestinationIn模式，适合透明图标</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithTintColor</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">tintColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从当前UIImage混合颜色创建UIImage，自定义模式</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithTintColor</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">tintColor</span> <span class="nf">blendMode</span><span class="p">:(</span><span class="n">CGBlendMode</span><span class="p">)</span><span class="nv">blendMode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 缩放图片到指定大小</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithScaleSize</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 缩放图片到指定大小，指定模式</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithScaleSize</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">size</span> <span class="nf">contentMode</span><span class="p">:(</span><span class="n">UIViewContentMode</span><span class="p">)</span><span class="nv">contentMode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 按指定模式绘制图片</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_drawInRect</span><span class="p">:(</span><span class="n">CGRect</span><span class="p">)</span><span class="nv">rect</span> <span class="nf">withContentMode</span><span class="p">:(</span><span class="n">UIViewContentMode</span><span class="p">)</span><span class="nv">contentMode</span> <span class="nf">clipsToBounds</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clipsToBounds</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 裁剪指定区域图片</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithCropRect</span><span class="p">:(</span><span class="n">CGRect</span><span class="p">)</span><span class="nv">rect</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 指定颜色填充图片边缘</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithInsets</span><span class="p">:(</span><span class="n">UIEdgeInsets</span><span class="p">)</span><span class="nv">insets</span> <span class="nf">color</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 拉伸图片(平铺模式)，指定端盖区域（不拉伸区域）</span>
<span class="k">-</span> <span class="p">(</span><span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithCapInsets</span><span class="p">:(</span><span class="n">UIEdgeInsets</span><span class="p">)</span><span class="nv">insets</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 拉伸图片(指定模式)，指定端盖区域（不拉伸区域）。Tile为平铺模式，Stretch为拉伸模式</span>
<span class="k">-</span> <span class="p">(</span><span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithCapInsets</span><span class="p">:(</span><span class="n">UIEdgeInsets</span><span class="p">)</span><span class="nv">insets</span> <span class="nf">resizingMode</span><span class="p">:(</span><span class="n">UIImageResizingMode</span><span class="p">)</span><span class="nv">resizingMode</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 生成圆角图片</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithCornerRadius</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">radius</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 按角度常数(0~360)转动图片，默认图片尺寸适应内容</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithRotateDegree</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">degree</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 按角度常数(0~360)转动图片，指定图片尺寸是否延伸来适应内容，否则图片尺寸不变，内容被裁剪</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithRotateDegree</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">degree</span> <span class="nf">fitSize</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fitSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 生成mark图片</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithMaskImage</span><span class="p">:(</span><span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">maskImage</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 图片合并，并制定叠加图片的起始位置</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithMergeImage</span><span class="p">:(</span><span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="nf">atPoint</span><span class="p">:(</span><span class="n">CGPoint</span><span class="p">)</span><span class="nv">point</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 图片应用CIFilter滤镜处理</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithFilter</span><span class="p">:(</span><span class="n">CIFilter</span> <span class="o">*</span><span class="p">)</span><span class="nv">filter</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 压缩图片到指定字节，图片太大时会改为JPG格式。不保证图片大小一定小于该大小</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_compressImageWithMaxLength</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">maxLength</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 压缩图片到指定字节，图片太大时会改为JPG格式，可设置递减压缩率，默认0.1。不保证图片大小一定小于该大小</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSData</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_compressDataWithMaxLength</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">maxLength</span> <span class="nf">compressRatio</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">compressRatio</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 长边压缩图片尺寸，获取等比例的图片</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_compressImageWithMaxWidth</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">maxWidth</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 通过指定图片最长边，获取等比例的图片size</span>
<span class="k">-</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_scaleSizeWithMaxWidth</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">maxWidth</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取原始渲染模式图片，始终显示原色，不显示tintColor。默认自动根据上下文</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">UIImage</span> <span class="o">*</span><span class="n">fw_originalImage</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取模板渲染模式图片，始终显示tintColor，不显示原色。默认自动根据上下文</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">UIImage</span> <span class="o">*</span><span class="n">fw_templateImage</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 判断图片是否有透明通道</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_hasAlpha</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前图片的像素大小，多倍图会放大到一倍</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_pixelSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从视图创建UIImage，生成截图，主线程调用</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithView</span><span class="p">:(</span><span class="n">UIView</span> <span class="o">*</span><span class="p">)</span><span class="nv">view</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从颜色创建UIImage，默认尺寸1x1</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithColor</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从颜色创建UIImage，指定尺寸</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithColor</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">size</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从颜色创建UIImage，指定尺寸和圆角</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithColor</span><span class="p">:(</span><span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">size</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">size</span> <span class="nf">cornerRadius</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">radius</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 从block创建UIImage，指定尺寸</span>
<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_imageWithSize</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">size</span> <span class="nf">block</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="n">NS_NOESCAPE</span> <span class="o">^</span><span class="p">)(</span><span class="n">CGContextRef</span> <span class="n">context</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 保存图片到相册，保存成功时error为nil</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_saveImageWithCompletion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">NSError</span> <span class="o">*</span> <span class="n">_Nullable</span> <span class="n">error</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_SWIFT_NAME</span><span class="p">(</span><span class="n">__fw_saveImage</span><span class="p">(</span><span class="n">completion</span><span class="o">:</span><span class="p">))</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">// 保存视频到相册，保存成功时error为nil。如果视频地址为NSURL，需使用NSURL.path</span>
<span class="k">+</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_saveVideo</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">videoPath</span> <span class="nf">withCompletion</span><span class="p">:(</span><span class="n">nullable</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">NSError</span> <span class="o">*</span> <span class="n">_Nullable</span> <span class="n">error</span><span class="p">))</span><span class="nv">completion</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIView%2BFWToolkit"></a>
                <a name="//apple_ref/swift/Section/UIView+FWToolkit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIView%2BFWToolkit"></a>
                  <h3 class="section-name"><span>UIView+FWToolkit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIView@FWToolkit"></a>
                    <a name="//apple_ref/swift/Extension/UIView(FWToolkit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIView@FWToolkit">UIView(FWToolkit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIView%28FWToolkit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIView</span> <span class="p">(</span><span class="nl">FWToolkit</span><span class="p">)</span>

<span class="c1">/// 顶部纵坐标，frame.origin.y</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_top</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 底部纵坐标，frame.origin.y + frame.size.height</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_bottom</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 左边横坐标，frame.origin.x</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_left</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 右边横坐标，frame.origin.x + frame.size.width</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_right</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 宽度，frame.size.width</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_width</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 高度，frame.size.height</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_height</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 中心横坐标，center.x</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_centerX</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 中心纵坐标，center.y</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_centerY</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 起始横坐标，frame.origin.x</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_x</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 起始纵坐标，frame.origin.y</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_y</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 起始坐标，frame.origin</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGPoint</span> <span class="n">fw_origin</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 大小，frame.size</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_size</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIViewController%2BFWToolkit"></a>
                <a name="//apple_ref/swift/Section/UIViewController+FWToolkit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIViewController%2BFWToolkit"></a>
                  <h3 class="section-name"><span>UIViewController+FWToolkit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIViewController@FWToolkit"></a>
                    <a name="//apple_ref/swift/Extension/UIViewController(FWToolkit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIViewController@FWToolkit">UIViewController(FWToolkit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIViewController%28FWToolkit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIViewController</span> <span class="p">(</span><span class="nl">FWToolkit</span><span class="p">)</span>

<span class="c1">/// 当前生命周期状态，默认Ready</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n"><a href="Enums/FWViewControllerVisibleState.html">FWViewControllerVisibleState</a></span> <span class="n">fw_visibleState</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 生命周期变化时通知句柄，默认nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_visibleStateChanged</span><span class="p">)(</span><span class="n">__kindof</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="n">viewController</span><span class="p">,</span> <span class="n"><a href="Enums/FWViewControllerVisibleState.html">FWViewControllerVisibleState</a></span> <span class="n">visibleState</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义完成结果对象，默认nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">id</span> <span class="n">fw_completionResult</span> <span class="n">NS_REFINED_FOR_SWIFT</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义完成句柄，默认nil，dealloc时自动调用，参数为fwCompletionResult。支持提前调用，调用后需置为nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_completionHandler</span><span class="p">)(</span><span class="n">id</span> <span class="n">_Nullable</span> <span class="n">result</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义侧滑返回手势VC开关句柄，enablePopProxy启用后生效，仅处理边缘返回手势，优先级低，默认nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">BOOL</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_allowsPopGesture</span><span class="p">)(</span><span class="kt">void</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义控制器返回VC开关句柄，enablePopProxy启用后生效，统一处理返回按钮点击和边缘返回手势，优先级高，默认nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">BOOL</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_shouldPopController</span><span class="p">)(</span><span class="kt">void</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义侧滑返回手势VC开关，enablePopProxy启用后生效，仅处理边缘返回手势，优先级低，自动调用fw.allowsPopGesture，默认YES</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">allowsPopGesture</span><span class="p">;</span>

<span class="c1">/// 自定义控制器返回VC开关，enablePopProxy启用后生效，统一处理返回按钮点击和边缘返回手势，优先级高，自动调用fw.shouldPopController，默认YES</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">shouldPopController</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UINavigationController%2BFWToolkit"></a>
                <a name="//apple_ref/swift/Section/UINavigationController+FWToolkit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UINavigationController%2BFWToolkit"></a>
                  <h3 class="section-name"><span>UINavigationController+FWToolkit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UINavigationController@FWToolkit"></a>
                    <a name="//apple_ref/swift/Extension/UINavigationController(FWToolkit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UINavigationController@FWToolkit">UINavigationController(FWToolkit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>当自定义left按钮或隐藏导航栏之后，系统返回手势默认失效，可调用此方法全局开启返回代理。开启后自动将开关代理给顶部VC的shouldPopController、popGestureEnabled属性控制。interactivePop手势禁用时不生效</p>

                        <a href="Categories/UINavigationController%28FWToolkit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UINavigationController</span> <span class="p">(</span><span class="nl">FWToolkit</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIView%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UIView+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIView%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UIView+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIView@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UIView(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIView@FWUIKit">UIView(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIView%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIView</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 视图是否可见，视图hidden为NO、alpha&gt;0.01、window存在且size不为0才认为可见</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isViewVisible</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取响应的视图控制器</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">__kindof</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="n">fw_viewController</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置额外热区(点击区域)</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">UIEdgeInsets</span> <span class="n">fw_touchInsets</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置自动计算适合高度的frame，需实现sizeThatFits:方法</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGRect</span> <span class="n">fw_fitFrame</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 计算当前视图适合大小，需实现sizeThatFits:方法</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_fitSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 计算指定边界，当前视图适合大小，需实现sizeThatFits:方法</span>
<span class="k">-</span> <span class="p">(</span><span class="n">CGSize</span><span class="p">)</span><span class="nf">fw_fitSizeWithDrawSize</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">drawSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 根据tag查找subview，仅从subviews中查找</span>
<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">__kindof</span> <span class="n">UIView</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_subviewWithTag</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">tag</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置阴影颜色、偏移和半径</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setShadowColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">offset</span><span class="p">:(</span><span class="n">CGSize</span><span class="p">)</span><span class="nv">offset</span> <span class="nf">radius</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">radius</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制四边边框</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setBorderColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制四边边框和四角圆角</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setBorderColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span> <span class="nf">cornerRadius</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">radius</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制四角圆角</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setCornerRadius</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">radius</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制单边或多边边框Layer。frame必须存在(添加视图后可调用layoutIfNeeded更新frame)</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setBorderLayer</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="nf">color</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制单边或多边边框Layer。frame必须存在(添加视图后可调用layoutIfNeeded更新frame)</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setBorderLayer</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="nf">color</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span> <span class="nf">leftInset</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">leftInset</span> <span class="nf">rightInset</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">rightInset</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制单个或多个边框圆角，frame必须存在(添加视图后可调用layoutIfNeeded更新frame)</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setCornerLayer</span><span class="p">:(</span><span class="n">UIRectCorner</span><span class="p">)</span><span class="nv">corner</span> <span class="nf">radius</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">radius</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制单个或多个边框圆角和四边边框，frame必须存在(添加视图后可调用layoutIfNeeded更新frame)</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setCornerLayer</span><span class="p">:(</span><span class="n">UIRectCorner</span><span class="p">)</span><span class="nv">corner</span> <span class="nf">radius</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">radius</span> <span class="nf">borderColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制单边或多边边框视图。使用AutoLayout</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setBorderView</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="nf">color</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 绘制单边或多边边框。使用AutoLayout</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setBorderView</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="nf">color</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">color</span> <span class="nf">width</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">width</span> <span class="nf">leftInset</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">leftInset</span> <span class="nf">rightInset</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">rightInset</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 开始倒计时，从window移除时自动取消，回调参数为剩余时间</span>
<span class="k">-</span> <span class="p">(</span><span class="n">dispatch_source_t</span><span class="p">)</span><span class="nf">fw_startCountDown</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">block</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">NSInteger</span> <span class="n">countDown</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UILabel%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UILabel+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UILabel%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UILabel+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UILabel@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UILabel(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UILabel@FWUIKit">UILabel(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UILabel%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UILabel</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 快速设置attributedText样式，设置后调用setText:会自动转发到setAttributedText:方法</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSAttributedStringKey</span><span class="p">,</span> <span class="n">id</span><span class="o">&gt;</span> <span class="o">*</span><span class="n">fw_textAttributes</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速设置文字的行高，优先级低于fwTextAttributes，设置后调用setText:会自动转发到setAttributedText:方法。小于0时恢复默认行高</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_lineHeight</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义内容边距，未设置时为系统默认。当内容为空时不参与intrinsicContentSize和sizeThatFits:计算，方便自动布局</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">UIEdgeInsets</span> <span class="n">fw_contentInset</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 纵向分布方式，默认居中</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">UIControlContentVerticalAlignment</span> <span class="n">fw_verticalAlignment</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 添加点击手势并自动识别NSLinkAttributeName属性点击时触发回调block</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_addLinkGestureWithBlock</span><span class="p">:(</span><span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="p">)(</span><span class="n">id</span> <span class="n">link</span><span class="p">))</span><span class="nv">block</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取手势触发位置的文本属性，可实现行内点击效果等，allowsSpacing默认为NO空白处不可点击。为了识别更准确，attributedText需指定font</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSAttributedStringKey</span><span class="p">,</span> <span class="n">id</span><span class="o">&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_attributesWithGesture</span><span class="p">:(</span><span class="n">UIGestureRecognizer</span> <span class="o">*</span><span class="p">)</span><span class="nv">gesture</span> <span class="nf">allowsSpacing</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">allowsSpacing</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速设置标签</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setFont</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">textColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">textColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速设置标签并指定文本</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setFont</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">textColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">textColor</span> <span class="nf">text</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">text</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速创建标签</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_labelWithFont</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">textColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">textColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速创建标签并指定文本</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_labelWithFont</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">textColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">textColor</span> <span class="nf">text</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">text</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIButton%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UIButton+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIButton%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UIButton+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIButton@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UIButton(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIButton@FWUIKit">UIButton(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIButton%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIButton</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 自定义按钮禁用时的alpha，如0.5，默认0不生效</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_disabledAlpha</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义按钮高亮时的alpha，如0.5，默认0不生效</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGFloat</span> <span class="n">fw_highlightedAlpha</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速设置文本按钮</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> <span class="nf">font</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">titleColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">titleColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速设置文本</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速设置图片</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setImage</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置图片的居中边位置，需要在setImage和setTitle之后调用才生效，且button大小大于图片+文字+间距</span>
<span class="c1">///</span>
<span class="c1">/// imageEdgeInsets: 仅有image时相对于button，都有时上左下相对于button，右相对于title</span>
<span class="c1">/// titleEdgeInsets: 仅有title时相对于button，都有时上右下相对于button，左相对于image</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setImageEdge</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="nf">spacing</span><span class="p">:(</span><span class="n">CGFloat</span><span class="p">)</span><span class="nv">spacing</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置状态背景色</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setBackgroundColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">backgroundColor</span> <span class="nf">forState</span><span class="p">:(</span><span class="n">UIControlState</span><span class="p">)</span><span class="nv">state</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速创建文本按钮</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_buttonWithTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> <span class="nf">font</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIFont</span> <span class="o">*</span><span class="p">)</span><span class="nv">font</span> <span class="nf">titleColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">titleColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 快速创建图片按钮</span>
<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">fw_buttonWithImage</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIScrollView%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UIScrollView+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIScrollView%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UIScrollView+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIScrollView@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UIScrollView(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIScrollView@FWUIKit">UIScrollView(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIScrollView%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIScrollView</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 判断当前scrollView内容是否足够滚动</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_canScroll</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 判断当前的scrollView内容是否足够水平滚动</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_canScrollHorizontal</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 判断当前的scrollView内容是否足够纵向滚动</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_canScrollVertical</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前scrollView滚动到指定边</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_scrollToEdge</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否已滚动到指定边</span>
<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">fw_isScrollToEdge</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前的scrollView滚动到指定边时的contentOffset(包含contentInset)</span>
<span class="k">-</span> <span class="p">(</span><span class="n">CGPoint</span><span class="p">)</span><span class="nf">fw_contentOffsetOfEdge</span><span class="p">:(</span><span class="n">UIRectEdge</span><span class="p">)</span><span class="nv">edge</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 总页数，自动识别翻页方向</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSInteger</span> <span class="n">fw_totalPage</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 当前页数，不支持动画，自动识别翻页方向</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSInteger</span> <span class="n">fw_currentPage</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置当前页数，支持动画，自动识别翻页方向</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">fw_setCurrentPage</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">page</span> <span class="nf">animated</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">animated</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否是最后一页，自动识别翻页方向</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isLastPage</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIPageControl%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UIPageControl+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIPageControl%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UIPageControl+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIPageControl@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UIPageControl(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIPageControl@FWUIKit">UIPageControl(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIPageControl%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIPageControl</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 自定义圆点大小，默认{10, 10}</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_preferredSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UISlider%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UISlider+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UISlider%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UISlider+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UISlider@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UISlider(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UISlider@FWUIKit">UISlider(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UISlider%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UISlider</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 中间圆球的大小，默认zero</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_thumbSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 中间圆球的颜色，默认nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UIColor</span> <span class="o">*</span><span class="n">fw_thumbColor</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UISwitch%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UISwitch+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UISwitch%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UISwitch+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UISwitch@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UISwitch(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UISwitch@FWUIKit">UISwitch(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UISwitch%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UISwitch</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 自定义尺寸大小，默认{51,31}</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">CGSize</span> <span class="n">fw_preferredSize</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITextField%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UITextField+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITextField%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UITextField+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITextField@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UITextField(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITextField@FWUIKit">UITextField(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UITextField%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITextField</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 最大字数限制，0为无限制，二选一</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSInteger</span> <span class="n">fw_maxLength</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Unicode字数限制(中文为1，英文为0.5)，0为无限制，二选一</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSInteger</span> <span class="n">fw_maxUnicodeLength</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义文字改变处理句柄，默认nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_textChangedBlock</span><span class="p">)(</span><span class="n">NSString</span> <span class="o">*</span><span class="n">text</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 文本长度发生改变，自动检测字数限制，用于代码设置text等场景</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_textLengthChanged</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取满足最大字数限制的过滤后的文本，无需再调用textLengthChanged</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_filterText</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">text</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置自动完成时间间隔，默认1秒，和autoCompleteBlock配套使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSTimeInterval</span> <span class="n">fw_autoCompleteInterval</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置自动完成处理句柄，默认nil，注意输入框内容为空时会立即触发</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_autoCompleteBlock</span><span class="p">)(</span><span class="n">NSString</span> <span class="o">*</span><span class="n">text</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITextView%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UITextView+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITextView%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UITextView+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITextView@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UITextView(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITextView@FWUIKit">UITextView(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UITextView%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITextView</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 最大字数限制，0为无限制，二选一</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSInteger</span> <span class="n">fw_maxLength</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 最大Unicode字数限制(中文为1，英文为0.5)，0为无限制，二选一</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSInteger</span> <span class="n">fw_maxUnicodeLength</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 自定义文字改变处理句柄，自动trimString，默认nil</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_textChangedBlock</span><span class="p">)(</span><span class="n">NSString</span> <span class="o">*</span><span class="n">text</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 文本长度发生改变，自动检测字数限制，用于代码设置text等场景</span>
<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">fw_textLengthChanged</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取满足最大字数限制的过滤后的文本，无需再调用textLengthChanged</span>
<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">fw_filterText</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">text</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置自动完成时间间隔，默认1秒，和autoCompleteBlock配套使用</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSTimeInterval</span> <span class="n">fw_autoCompleteInterval</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 设置自动完成处理句柄，自动trimString，默认nil，注意输入框内容为空时会立即触发</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">fw_autoCompleteBlock</span><span class="p">)(</span><span class="n">NSString</span> <span class="o">*</span><span class="n">text</span><span class="p">)</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UITableViewCell%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UITableViewCell+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UITableViewCell%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UITableViewCell+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UITableViewCell@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UITableViewCell(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UITableViewCell@FWUIKit">UITableViewCell(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UITableViewCell%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UITableViewCell</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 设置分割线内边距，iOS8+默认15.f，设为UIEdgeInsetsZero可去掉</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">UIEdgeInsets</span> <span class="n">fw_separatorInset</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前所属tableView</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">weak</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UITableView</span> <span class="o">*</span><span class="n">fw_tableView</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前显示indexPath</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSIndexPath</span> <span class="o">*</span><span class="n">fw_indexPath</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UICollectionViewCell%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UICollectionViewCell+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UICollectionViewCell%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UICollectionViewCell+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UICollectionViewCell@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UICollectionViewCell(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UICollectionViewCell@FWUIKit">UICollectionViewCell(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UICollectionViewCell%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UICollectionViewCell</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 获取当前所属collectionView</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">weak</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">UICollectionView</span> <span class="o">*</span><span class="n">fw_collectionView</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 获取当前显示indexPath</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSIndexPath</span> <span class="o">*</span><span class="n">fw_indexPath</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/UIViewController%2BFWUIKit"></a>
                <a name="//apple_ref/swift/Section/UIViewController+FWUIKit" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/UIViewController%2BFWUIKit"></a>
                  <h3 class="section-name"><span>UIViewController+FWUIKit</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cy)UIViewController@FWUIKit"></a>
                    <a name="//apple_ref/swift/Extension/UIViewController(FWUIKit)" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cy)UIViewController@FWUIKit">UIViewController(FWUIKit)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Undocumented</p>

                        <a href="Categories/UIViewController%28FWUIKit%29.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">UIViewController</span> <span class="p">(</span><span class="nl">FWUIKit</span><span class="p">)</span>

<span class="c1">/// 判断当前控制器是否是根控制器。如果是导航栏的第一个控制器或者不含有导航栏，则返回YES</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isRoot</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 判断当前控制器是否是子控制器。如果父控制器存在，且不是导航栏或标签栏控制器，则返回YES</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isChild</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 判断当前控制器是否是present弹出。如果是导航栏的第一个控制器且导航栏是present弹出，也返回YES</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isPresented</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 判断当前控制器是否是iOS13+默认pageSheet弹出样式。该样式下导航栏高度等与默认样式不同</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isPageSheet</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 视图是否可见，viewWillAppear后为YES，viewDidDisappear后为NO</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isViewVisible</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="c1">/// 是否已经加载完，默认NO，加载完成后可标记为YES，可用于第一次加载时显示loading等判断</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">fw_isLoaded</span> <span class="n">NS_REFINED_FOR_SWIFT</span><span class="p">;</span>

<span class="k">@end</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
          </section>
        </section>
        <section id="footer">
          <p>&copy; 2022 <a class="link" href="http://wuyong.site" target="_blank" rel="external noopener">Wu Yong</a>. All rights reserved. (Last updated: 2022-08-02)</p>
          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.2</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
        </section>
      </article>
    </div>
  </body>
</html>
